Skip to main content

Full text of "TS-2068 Up-date"

See other formats


TS:2068 UP-DATE 
the user's NEWS 


2 


TS—2068 UP—-DATE = 
1317 STRATFORD AVE. 
PANAMA CITY, FL 32404 


TS-2068 UP-DATE is a quarterly publication devoted ta 
the support of users of the Timex 7872066. Hach ef the Disk 
Drive Systems for the TS-2068 are discussed in detail in 
special feature sections. Annual subscription is $12,00 per 
year of issues. 


***K BUILDING BLOCK SECTIONS **** 
Software and Hardware Articles and Reviews 
Technical: Schematics, Data Sheets, Interfacing 
The Catalog: Software and Hardware Availability 
Electronics Data: Formulas, Symbols, Tables 


Subscribers Free Ads: Swap, Sell, Wanted 


T8+2068 UP-DATB 
1817 Stratford Ave, Panama City, FL 32404 


(904 871 4513) 


Common Electronics Symbols and Abbreviations 


The following are Electronic Symbols and abbreviations, having to do with 


Voltge, Current, Power, Frequency 


Inductance, Reactance, Capacitance, 


Resistance. For electroncs formulas, refer to the technical (green) section 


English Letter Symbols 


=Ampere (Current Measurement) 
=Coulomb (capacitance Charge) 
=Electromotive Force (Volts) 
=giga (billion or 10 to 9th) 
=Current (Unit=Ampere) 

=Kilo (one thousand) 
kV=Kilovolt (thousand valts) 
kW=Kilowatt (1000 watts) (power) 
ega (1 million) 

illiampere (1/1000th ampere) 
illivolt (171000th volt) 

ano (1 billionth or 10 to -9) 
nF=Nanofarad (1 billionth Farad) 
P =Pico (10 to the minus 12) 
icowatt 

VA=Voltampere (One Volt at 1 Amp) 
Wh=Watthour 

uA=Microampere 

ul=Microhenry 


Rreonmop 


Abbreviations 

ac=Alternating Current 
am=Amplitude modulation 

amp hr=Ampere hour 

ant=Antenna 

assy=Assenbly 

avc=Automatic Volume control 
bdfo=Beat frequency oscillator 
B&S=Brown & Sharpe Wire Gage 
cb=Common base 

ef=Cathade follower 
cw=Continuous wave 

dB=Decibel (Sound measurement) 
demod=Demodulator 

dpbe=Double pole, back connected 
dpfc=Double pole, front connected 
dpsw=Double pole switch 

D =Drain; duty factor 
emf=Electromotive force 
erp=Effective radiated power 


Bd=Baud ‘speed of communications) 
dB=Decibel (sound measurement) 

F =Farad (unit of Gapvetebeace 
GHz=Gigahertz- One Billion Hertz 

J =Joule (Inductive energy unit) 
kHz=Kilohertz (frequency) 
kVA=Kilovoltampere. (1000V¥1A) 
kWh=Kilowatthour (1000W for 1 hr) 
MHz=Megahertz (1 million hertz) 
ms=millisecond (1/1000th second) 
mV=mnilliwatt (1/1000th watt? 
nA=Nanoampere (1 billionth amp) 
ns=Nanosecond (1 billionth second) 
pF=Picofarad 

V =Volt (Electromotive Force) 

W =Vatt (unit of electrical power) 
u =Kicro (1 millionth) 
uF=Hicrofarad 

us=Kicrosecond 


af=Audio Frequency 

amp=Ampere 

ampl=Amplifier 

apc=Automatic phase control 
atten=Attenuator 

AWG=American wire gauge 
bp=bandpass 

cap=Capacitor 

ce=Common emitter 

cet=Center tap 

C =Capacitance, Capacitor, Coulomb 
de=direct current 

dp=Double pale (switch) 
dpdt=Double pole, double throw 
dpst=Double pole, single throw 
dt =double throw 

ef=Emitter follower 

env=Enve lope 

E =Voltage; Emitter 


Continued inside back (blue section). 


About TS—-2068 SAFE DISK UP -DATE 


TS-2068 SAFE DISK UP-DATE is a general publications to support TS-2068 Users. 
SDU is orientated to those serious users who have already, or intend to upgrade to 
Disk Drive system. SDU is written for all levels of user programming. The expert 
programmer will likely think that the content is too basic, and the novice will feel 
that it is too advanced. To the latter, knowledge is gained by the study of details 
that are foreign, as no one learns from re-hashing what one already knows. There are 
many TIMEX CLUBS, one within your commuting range. These clubs provide a great 
opportunity to benefit from the exchange of programming information. Some produce 
club newsletters that are well worth subscribing to. I subscribe to no less than four 
of these club publications. Current listings of active clubs can be found in Time 
Designs Magazine, SyncWare News, and Computer Trader Magazine, all of which are "MUST 
SUBSCRIBE TO” publications that support the TS-2068. TO THE EXPERT PROGRAMMER, this 
issue is a vit weak on Machine Language programming, but I'll bet that you can find 
some new kinks in BASIC that will support your programming efforts. AND, the program 
"SpOS MAIL MERGE" is a natural for assemblying into NC. We will do that in the next 
issue. Why dont one of you MC artists beat me to the punch and send in a article on 


this? Do it and your works will be published 


SYNTAX: While SDU is "Disk Drive Orientated", and is now slanted to the Safe 
Disk Operating System (SDOS), all programming presented can easily adapt to any other 
Disk Controller syntax, and to Cassette. SDI will begin to support other disk systems 
as writers begin to support SDU. 1 received a nice letter from Mr. Larry Kenny of 
LARKIN ELECTRONICS inquiring if SDU is a "General Publication for the TS-2068". YES, 
it is intended to be just that. BUT, to cover ail systems, I need WRITER 
CONTRIBUTIONS from those who use the systems. 1 would love to add a "LARKEN DISK 
SECTION’. Larry Kenny deserves much credit for developing the LARKIN DISK and for his 
perseverance. He even has a "Universal DOS DISKETTE” that is compatable with the 


Oliger SAFE DISK System. I haven't tried that, but would like to 


AERCO FD-68 DISK SYSTEM: David Hill started a nice newsletter for Aerca FD-68, 
Disk Users. 1 subscribed and received two issues of FD-68 User and I must admit that 
my money's worth was received in the two issues. BUT, it appears that FD-68 USER is 
gone. The current issue is well past its time and correspondance to Dave is being 
returned "no forwarding address". Maybe this is hasty, and I'll be sure to correct it 
if it proves to be so. If the latter is the case, I dont want to compete for FD-68 
users, but would like to invite all to subscribe to SDU. If FD-68 User does not 
resume, then perhaps we can start a special section in SDU to serve the Aerco users 


Again, WRITER SUPPORT will be needed and welcomed 


OUTLOOK: A publication builds upon the effectiveness of its content and the 
enthusiasm of the user group that it represents. Both equals success. | am 
enthusiastic and I project about 300 subscribers by mid 1986 and increasing. When we 
“each that point, a break even situation will exist and consideration will be given to 
expand coverage and to change to 4 bi-monthly schedule. BUT, First Year First! lam 
committed to a full year of publication of SDU before even checking on RED INK 


(losses). Then we will decide. Best O Computing to all 


WINTER COMPUTER FEST IN ORLANDO, FLORIDA: Right in the midst of Disney World, 
Sea World, Circus World, nearby to the East Coast Beaches and to the Space Center 
What a great place to combine a Computer Fest and a Family Vacation! The details will 
unfold between issues of SDU. Watch for news in TDM, SYN, and TDM. Eric Johnson, 249 
N. Hardin Ave, Orange City, FL 32763, is your contact. He needs your support for 


success. 


By Bill Jones 


Enthusiastic 20686ers 


I wish that I could print the dozens of enthusiastic and supportive letters 
that I have received from dedicated 2068ers. One nice guy even sent an extra 
$15.00 "for the kitty”. There is a real solid desire for a publication dedicated 
to TS-2068 support. THANKS to all of you well wishers! Soon we will see just how 
many serious 2068 users are out there in the USA and CANADA. Counting noses, 
Canadians are right in there at the stretch. One of you Canucks send me a little 
maple leaf decal to dress up the pages with. It'll go side by side with the Stars 
and Bars. Incidentally, I have had the priviledge of flying side by side with 
many RCAF Jocks and I can tell everyone that the Country to our North is a proud 
and sturdy neighbor having a tradition of integrity that is difficult to match. 


Gaffs and Laffs 


Defenitichion 


Interface: Vhats under the cold creme as the wife prepares for beddi-bye. 
Dynamo: A small town in Missouri. 

Data bus: Kissin and talking at the same time. 

Syntax: A Colorado tax on brothels. 

Peripheral: What one sees outta the corners of the eyes. 

Optimist: One who believes the sky is rising with him in it. 

Pessimist: One who believes the sky will fall upon hin. 

Free: What taxes provide to them that dont pay taxes. ’ 
Service: A crime committed by a male. 

Consultant: One who can't do it but wants to tell you how for a price. 
Coax: A small axe which has two cutting ends. 

Telecomputing: Secrets told to a friend and relayed to others. 

Trouble Free: It dont break as much as it usta. 

Buffer: Where Ma keeps the Sunday table cloth. 


Grand Canyon: Vhere the Injuns dug the dirt for the Rockies. 


Your eyes are fooling you. | 


All Lines are Straight. 


All Squares are Square. 


All are the same Size. 


Cessna 172 


Eye Burn From Computer Monitors 


Computers have introduced a damaging phenomenon 
“Monitor Burn". Monitor burn is similiar in effect upon the 
eyes as sunburn after a day at the beach or a afternoon 
drive toward the western Sun. One’s eyes can become quite 
irritated after hours before a computer monitor. Continued 
exposure can result in “dry eyes”, and even scalding of the 
surface of the eyes, a severe condition that has lasting 
effects. 


Color Monitors produce the most eye damage. Monitors 
that present black background and plue print are the easiest 
on the eyes. This is because blue light is of a lower 
frequency and has the most diffusion, while red light isa 
higher frequency and is concentrated as in a beam. Other 
colors fall in between as to their damaging effects 


As much as we like to use our computers, we should be 
alert to 'Monitor Burn”. The early symptoms of Monitor Burn 
are: i. Eyes dryer than usual and a need to blink more 
often. 2. Eye redness or irritation. 3. Itching of the eye 
or eyelids. When these symptoms occur one should quit for 
the day and until the symptoms disappear. 


By the time one notices the symptoms of Monitor Burn 
the eyes could be considerably purned and scalded 
necessitating a prolonged period of recovery. Recovery may 
require the continual use of ‘artifical tears” eye drops to 
overcome dryness, and or, a antibiotic salve to keep down 
pacteria infection of the eyes 


Those who operate computers should be conscious of the 
damaging effects of Monitor Burn and take these precautions 
i. Use sun glasses for long periods of viewing ‘especially 
color monitors). 2. Operate with a "blue on black” color 
combination if possible. 3. Keep eyes moist by plinking, or 
use of mild "artificial tears” eye drops. 4. Watch for 
early symptoms of Monitor Burn and discontinue until the 
symptoms disiappear. 


RABY AMERICAS 
ae Toes EGAoaEoeTORESOSOUSTESOOE 


Sep 
Boeing 707 


Qctober 1987 


Curtiss 1910 


Wright Flyer 


Editorial 


Here we go! Like the Wright Flyer, we're off the ground! This first issue 
af TS-2068 Safe Disk Up-date cost a bundle because of the insert cover and 
section separations. But maybe the red ink will change to green by the end of 
the first year, I wanted to provide a couple of pages for each section so that 
you would get acquainted with the organization. These sections will build as 
the issues come to you. 


The pages are punched for insertion in a three ring note baok in order to 
keep the issues together in one place. Each section will be a different color 
so that major subjects can be easily found. I've never seen a publication 
organized that way, but I've never published anything before, Anyway, it 
sounded like a good idea. 


If you like this issue, please rave about it to all who have a TS-2068, 
members of clubs especially. Although we will always support SDOS, the subject 
matter will be applicable to the 7S-2068, whatever the configuration. Please 
help the newsletter grow by recommending it to your friends. 


This issue has several useful utilities plus two major programs. The 
second program "SDOS HAIL MERGE” is outstanding in its usefulness. SDOS MAIL 
MERGE will work right now as a printing mail list, using the Safe Disk printer 
driver routine. It will print labels and envelopes, or just listings of 
whatever nature you store in the data base. For the next two issues we will be 
adding more functions to Mail Merge. We'll adda couple more menus, a printer 
control group, auto printing of disk files, plus more. This software will grow. 


The first program is a nice group of six interactive utilities. You can 
actually do "mixed math" using inputs of HEX or Decimal, Multiply FFF Hex time 
123 Decimal, for’example. Even fractions are handled. Of course there is not a 
way of expressing fractions in HEX, but this will work: Divide 102697 by FAS 
Hex, The result will be printed in decimal with fraction, Direct conversions 
of Decimal to Hex or Hex to Decimal are handled up to FFFFFFh or 16777215 


decimal. Thats 16 megabytes. 


SDU DISKETTES: Lazy? Well, maybe just "busy". Whatever, if you dont want 
ta key in the programs and utilities and debug key-in errors, you can order the 
“SDU DISKETTE". There will be a SDU DISKETTE for each issue. Each SDV diskette 
will have all programs and utilities of that issue on 5 1/4 inch diskette. 
Additional documentation will be provided when appropriate. All formats of 5 
1/4 inch diskettes will be supported. You can order the SDV Diskette for a 
price of $16.00, See the order form in the yellow pages for each issue. 4A 
scheme has been concocted to share the proceeds of SDU Diskette sales with the 
authors of the programs and utilities, SDV will provide the diskettes and take 
50% for expenses. The other 50% will be shared on a basis of the author's 
percentage of the total diskette programs. One wont get rich this way, but will 
at least receive something for one's efforts. 


The BLUE section of SDV will be filled in as issues continue. It will be a 
complete "Electronics Data" section and will include all abbreviations, symbols, 
conversions, tables, and formulas. The Technical Section will contain all of 
the TIMEX schematics, Port pin assignments, Oliger schematics, and technical 


data about modifications. 


The Club: Well, actually it isn't a club, but lets think of TS-2068 Safe 
Disk Up-date as representing the [S-2068 user group. SDU encourages your 
participation, your questions, and your comments. We need useful utilities and 
short programs for publication. Please send in your creations. Lets use this 


analogy in computer syntax: < IF 100 subscribers SHARE utilities and 
programming TIPS THEN ALL MAY INCREASE computer literacy BY a FACTOR OF 100 > ¢< 
IF NO OVERLAP >. Oh well, you get the gist of the idea, Lets have a 


participating group for the benefits of all. 


The section titled “TS-2068 Computing With SDOS" is John Oliger's section, 
his rapport with Safe Disk Users. John will answer all of your questions. Send 
your questions to the newsletter, or direct to Joha, I'm sure that John already 
has a number of questions that he has answered to individuals, that would also 
be of interest to most users. I'll keep my hands off of this section and it 
will be what you, the readers, and John make of it. 


Subscribers FREE ADS: You may send in an ad to sell something that you 
dont need anymore, or ask for something that you dont have (Wanted), or TRADE. 
These free ads will be column printed and must be 400 characters or less in 
length. Please give your wailing address and phone number if possible, and 
state {f the item is in working order. 


The Catalog Section: Consider this "the yellow pages". Some of the ads 
will be paid ads from vendors. Subseribers who have their own software or 
hardware to sell may "announce the product” FREE, Such free announcements must 
be sent in "copy ready” and shaped to 1/2 page in size. Use a good typewriter 
or computer print with a "letter quality” printer, Draft quality print wont 
copy very well, These subscriber "Free Announcemeats” are given ta encourage 
the programmer to create good software for the users, It's tough out there ta 
have to pay to advertise to a small user group. This may induce our qualified 
programmers ta PRODUCE. 


REVIEWS: We need volenteer reviewers. If you want to receive software and 
write reviews, please write in and get on the SDV writer list. Individuals or 
firms who desire that a product be reviewed, please send the software or 
hardware to the newsletter. We will expect that a software will be kept by the 
reviewer as compensation for the writing effort. Reviewers of hardware should 
be allowed to purchase the hardware at 40% off market price. 


LETTERS: I will appreciate your comments. fhe editorial section will be 
kept brief because we dont want much "non permanent” data to clutter up the Safe 
Disk Notebook. Letters, while appreciated, may not be published, depending upon 
whether or not the comments are deemed to be of interest to most subscribers, 
QUESTIONS and informatives WILL be published. Complaints about vendors will be 
handled by direct contact with the vendor to attempt to satisfy the user, and 
will be published only if a vendor fails consistantly to resolve complaints. 


So, thats my two cents worth for this October 87 issue. Hang in there and 
participate! We need that. (Ed) 


ip 


Haviland Obng 
How Goes It? 


Now I'a gonna take a leaf from ‘ole Chet's book and 
ramble a bit. $0U intends to cover ALL TS-2068 Disk Orive 
Systems. These are} The Oliger Safe Disk, The Aerco FO-68, 
The Larkin, and The 10S (Zebra). Eric Johnson (your contact 
for the Florida Conputer Fest) has agreed to provide writer, 
support for the LARKIN DISK system. By the January issue of 
SOU ve should have a writer Lined up to provide coverage of 
the 10S DISK systea, and another for the FO-6@ DISK systen. 
Other good prograsmers and writers have promised articles 
and programs for future issues. Misters Ton Kalogerson, 
Robert Hartung, Dick Wagner, Roelof Mulder, and John 
McMichael, have all promised to help with the writing. 1 
really appreciate this and an looking forward to publishing 
their works. As these and more writers join in, SOU will 
becone the most exclusive source of up to date information 
about the 19-2068 and its disk systess. 

Want to call a Bulletin Board and leave a nessage for} 
all to read, or get info about the Orlando Computer Fest? 
Get your Hodea up and running and let your computer dial 
904-775-0093. Use 300 BAUD, 8 ~ 1- none, as the log on 
protocol (No Voice). This is Eric Johnson's BB (NY FLORIDA 
TSUG), headquarters for the 88 Winter Computer Fest. 

Eric also has a NEAT, and inexpensive OOCK RAM board) 
which he will write up as a building project for SOU. This 
fits in nicely with a EPROM programming article by Toa 
Kalogerson, and one that I am planning for conversion of the 
(Qliger) 64k RAM for the TS-1000 to a 64K Dock RAM to fit 
into the extra slot of the expansion bus, BASIC programming 
details will be given. These articles will be paced so that! 
a similiar subjects do not take up a whole issue of SD). 


Planned ara articles and progeans about such subject: 
ast Dock Progranuing, EPROY Prograsxing, Extra Meaor) 
Devices, Telcosputing, Interfacing, Disk Drives, plus nore. 
The aaterial presented in SOV will not be designated & 
‘public domain", but vill crenata the property of the weiter. 
ach subscriber is given the prograns for individual use. 
Nov, a bit on ‘self interest", Sose of you know that I ai 
the author of the sofivare ‘Saart Text", and say b 
wondering if SOU is sorething to feather ay nest. ST he 
been on the market long enough that alaost everyone wh 
wants it already has it, and 2 do aot have, nar do f inten 
to have anything alse to sell. Haturally, f believe that 9: 
ts a good and useful progeaa, and £'1] keep a “Subscribe! 
Ad” in SOU offering it to any who wants a copy. You can a 
tat also for any software ot hardvare that you have fo 
sale, Free subscriber ads are given to encourage ou! 
soflvare writers to produce, There are aany experi 
prograsners in our sidst, but fev are producing products fo 
sale because of the costs of advertising to a seal! use 
group. Maybe sone will release their products via the Fre: 
subscriber ads, $0, ‘how bout it", you prograssers? Let: 
get your good prograas into circulation. 


Plans and Organization 


At this wetting there are 45 subscribers to SOU. Dont 
laugh! These 45 cane froaa aail out invitation to only 
100. All are SAFE OISK users. More subscriptions are 
frickling tn each week, and another 100 aati outs to $0 
users vill be done soon, The projection is tor 2-300 
subscribers by July 88. Publication of SOU is “by year of 
issues", which aeans that a subscription year ts OCT to 
JULY, and each “nid year” subscriber vill recetve that 
current year of issues, This strange set up does two fine 
things. ft provides the new subscriber with the back up 
issues that are supporting, and it sakes each issue ore 
unifora in distribution. 

I expect that the publishing of SOU will cost se about 
$200.00 wore per issue than subscription incoae~ until the 
subscription base reaches about 300 (the break even point? 
The sales of issue diskettes can help this posture by 
bringing in sual profits. {vill coastt to a full year of 
publishing and see how 1 goes for the OCTOBER 88 issue. 
Enthusiasu of the 1$-2068 users is the essential factor. IF 
ve have that, and IF the subscription base builds, THEN 
PERHAPS “SOU can becone a bi-wonthly, beginning with the Oct 
88 issue, 


The Lonesome Dack 
I aentioned that the two prograns in this issue vera 


designed for installing in a Dock Cartridge. To date little 
information has been published about how Dock Cartridge 


prograss, Hose bank Hewory, and Disk Drives can be "cross ; 


utilized’. Pielura a 64K Dock cartridge that hag a aajor 
softvare, plus the two prograns in this issue, plus THO HORE 
sajor prograss, The aajor prograus are all edited to resove 
ALL screan presentations and replace with a sisple disk call 
(LOAD /*Hible"SCREENE). Each tine that ts done, the progran 
length of the Dock Prograa reduces by 400 to 700 bytes, Cut 
8 genus and screens and the progran length is reduced by 
SEK, 

Another aspect of Oock Prograns is the fact that the 
dock progras contains 40 VARIABLES, Just pure prograasing. 
Yariables can be identified in a dock progeas, but the vars 
are STORE in Hore Bank, The CATA and vars in the howe bank 
can easily be aanipulated by the dock progras. So can the 
Disk Orive. Prograa planning can easily result in the Dock 
Progran aanipulating at vill, Lts ova 64K of prograss, plus 
SOK of FREE Memory in the Hose Bank, plus a "Million K' of 
data in your diskette Library. 

So far, the 18-2068 conaunity has not eabraced the bock 
Cartridge with the enthwstase that it deserves. Articles 
about Dock Prograuning have been very technical, presenting 
the picture thet the use of dock cartridges is very 
difficult to waster. The prograsser's job is to reduce 
coaplexity to ‘user friendliness", and this can be done 


easily. e will explore all of the above in future 
articles. —= 
HELP IT FLY? 


& 


---- fei 


jocing F2A-+ 


The Programs for This Issue 


Actually this page vas veitten after the outstanding 
editorial of page 1 and 2, After reading tb Ldidn' think 
it did justice to the two progreas of this issue, #0 res 
expound & bit, and be sonerhat cepetetive, 
a The fro prograss are in GRASH FREE BASIC, Exoth 

prograas vere originally designed to consolodate into a Dock 
Cartridge, along vith another sajor softvare, Vars files of 
each are supportive, The disk drive is used to hold 
supporting wenus for "009 MAIL MERGE®, thus saving about 2k 
of progeas aenory, Ue vill pave a future acticle about 
doing the Dock Cartridge transfer. 

$003 MAIL MERGE? If you have ‘Pro-File* and Like it, 
you'll also Like this softvare, There are vo flexible date 
bases, One is the “sail aerge® base valch has up to about 
120 fields of 7 Lines each, The wser decides the nusber of 
fields needed ard gets the first dinension by prospt, Each 
of the seven lines are set for 31 characters each, You can 
rake the Lines longer or shorter by editing Line 2006 and 
changing froa $f characters to vhatever you vant as a line 
length. The peiaary purpose of thts cata base ves designed 
to be a Mailing List, using the first tour Lines of each 
group (field) for ‘address data linest, plus the ‘first 
rane? of the indfvidval es the fifth Line, Then vo sore 
data Lines are provided tor ancillary intorsation about the 
person of coapany. 

Labels and envelope printing uses the first four lines 
only.  Proapts alloy you to set up both vertical and 
horozontal spacing to strike @ series of labels or envelopes 
unitorely. Another prospt provides the option of printing 
your ovn return address label atter each ‘out Label® prints, 
Disk files of ealling lists ty be ordered tor loading and 
printing. Also, autoaatic SAVE to disk by discrete tile 
nuaber is a aenu option, The data base isfdeally suited for 
any other purposes, such as setting up davolce tleldt, 
inventory lists, aagazine article Listings, ot dust anythiag 
that one needs to retain as date, The wen alloys & 
selectable auaver of lines of the tlelds to be peiated, 
Aulosstic page control with page nuaber is a option. 

Sorting is provided by either first nara or last nant. 
thea the data base Is used for inventory the sorting can be 
by either stock nusber of aoun. Sorting in BASIC ts rather 
slov, but nofavfully slow, and hoy often does one need to 
sort a List? 

The second data base ts *OUTLINE’. This data base is 
entirely flexible and is set by input prospts fors ‘Kuaber 
of Kajor Topics’, ‘Huser of Minor Lines of Each", end ‘Line 
Length’. The printing (s set by Input of TAR, and Spacing. 
The outline prints to input 148 for the axfor topics and 
Tages tor the agnors. Autoratle page control and page 
nusbers are optional. Centered Subject captions are also 
optional. The xen alloys coaplete page aaragerent tor the 
printing of either dita base. Ko supporting printer 
‘softvare is required when using the SAFE DISK systex, a3 the 
LET/es0 ot LET/P2T protocol is used in the progressing. 
Prospts — staply ask whether you vant to print witha 
Centroncis printer or the TS-200. *NERGE® L¢ MENU DRE! VEN, 
every function before your eyes in slaple English. 


ov can one nase a progran saat has six diverse 
functions?  J-URIL corbines nost ‘nvaber functlons* ageded 
in cosputing. ‘. 

MEMORY PANAGER is the first 3 useful utilitles for the 
tachine Code progranser, Call it ‘alni z* it.you like, 2 
originally designed it to avold having to convert hex to 
dectsal to poke @ NG progran bo acxory. Then evolution took 
hold, Teo DATA Lines are used to preserve a AC Code table. 
dne data line 1s for a HEX prograt, and another data’ Line ts 
for a Decleal progres. by plactag a He prograx iid data 
line, the progres ray be SAVED to diskette before attespting 
to run the XC progeax, Then the senu prospts for starting 
address, READS the data Line, and Installs the progtak into 
serory, THE HENORY DISASSENGLER vorks in reverse to PEEK 
any selected segrent ‘of nesory- and print the block. of 
addresses, The contents of each addressis given in Deciaal, 
HEN, and Character code, 

2. HEX-DECINAL-BINARY CONVERTORS Input a nusber fa 
sither data base and the eguilivant is given in all three 
data bases. Conversions are provided trax 0 to FEFFFF, or 
16,777, 218 (18 HBYTES). 

3. MULTT LATERAL MINED KATHE Dunno what elsa to cell 
it. Whad ts FFAMD kines 215.9 decinal? Or, 7649941 divided 
by Bid £10011? What is F49CA alous FOlAR? Or FFFAESA alas 
BIN MIUMMILLIE1LI? thatevert? tho cares? Input any corbo 
of axed nuxbers and the progras quickly gives the ansver. 

ds BINCDECIMAL/HER GRAPHICS! A college class on 
cosputer technology that attended a while back got avtully 
hung up on this ‘subsect. A conceptual visualization of the 
three bases helps. = & key puach brings on the graphic 
correlations. ” 


THE KEY=IN PROJECTS 


fost short ubllities wlll sllp eight {nto coxputer 
vithout auch de~bugging for key in errors. th ds the longer 
progress that give problens. but the longer progrars are 
usvally sore useful end enduring. Please oe assured that 
all progray listings are actual LLISTS of 4 operating 
prograr, SDV vill not atterpt to type out a program to wake 
di fit dato a pege forsal, and risk typos, All will be 
actual LLISTS frox the corputer, These tro prograns will be 
difficult to avoid key dn ervors because of long and complex 
Hines that eaploy Boolean expressions using brackets and 
sath sysbols, Altera fev hours one teads to give up. 

These two progrars are vorth the key ia effort 
required. Both compare vith softwares for Apple and 
Coarodore that sell for over $60.00 each, The *S0U ISSUE 
DISKETTE?, af $16.00 ds the bargain of the year, tho else 
can buy useful softrare at such a price? ‘issue Disketles* 
contain all progears and utilities inan issue of SOU. They 
are supplied on S14" diskettes in any foreat, The concept 
of ‘issue clskettes" is to provide the author vith a little 
bit of corpensation for bis efforts, and to provide the user 
with usetul progeass and utilities, whtlesaving lots of 
key-in tine acd frustrating ce-bugging. Later, we kay Aare 
to increase the price, depending upon cost factors, We'll 
see hov it goes for at Least one xore issug. 


U Ym 
ic N 
hasic ul 


OO < pA é (| 
Ge’. : 


G 


O : 
p® machine 
Le te 
~~ dos. 


on a 


About your Editor, plus Nostalgia 


Way back in the turbulent ‘50's the USAF developed a gun sight which could, froa 20 atles, 
automatically fly a fighter aircraft to a point in space to fire rockets, supposedly to destroy 
a enesy boaber. Thus case into being our first real coaputer application. Back then the 
transistor was a drawing board figment of engineering iaagination. ve used Vacuue tubes, and 
ots of us, thousands in a systes. Cosputing was analog technology, using such ratheaatics 
principles as trigonoretry, rotating vectors, scale factors, etc. You see, analog computing is 
based upon Voltage coaparisons and measurements, rather than nuabers and aesory. 

The F-89 Fighter aircraft was the largest fighter ever built, and it was a wachine built 
around a electroncis package. The Radar and electronics package cane in at about tro tons, 
including the wiring. That vas ay baby, to fly and to waintain, and to look forward to advanced 
applications. The evolution of wilitary computing led the electronics industry. By the '60's 
ve vere into Solid State devices, using diodes froa saall signal diodes to large high current 
diodes. High current diodes cut 600 pounds fror a electronics package and reduced heat 
considerably. Analog computing vas still the basis for computing. 

The late 60's brought on ‘unreliable’ transistors, affected by heat changes and vibration. 
Fev nilitary systeas vere developed to rely upon transistors. Then the aicro chip cage along- 
strll very unreliable. but the industry began to lead the ailitary and find civilian 
applications for the sicro chip in such applications a cash registers and tiaing systeas. It 
wasn’t until the nid 70's that the ailitary could package electronics systeas that contained 
nostly atcro devices. Still in Analog applications, the complex aircraft systea that weighed in 
at two tons could be packaged down to about 500 pounds, most of the veight being in antenna and 
transaitter. 

Military digital systeas case in about the sane tine as the Sinclair 2X-8t in the 78-79 
era. Then a systea veight of 400 pounds would ao more than a thousand tines as sany 
applications and auch sore accurately than ay old F-89 (tro ton) systen. Most importantly, the 
electronics industry was “uncoupled” fron military dominance. The world wide computer 
evolution began, and the industry took off on it's own power based upon civil consuaption. Now 
our wilitary systees are engineered and built with off the shelf ttens. 

Being frox the horse and buggy days of electronics, your editor was delighted to have the 
opportunity to buy a 24-81 (kit) for the bargain price of $199.95. But what a transition! Now 
T had to learn digital, things like Binary, and Hex, and Prograaning languages! te who are 
involved in electronics are constantly faced with a problem called “Obsolescence”. Take a year 
vacation and one cones back to be overcone by technology advances. One aust be continually 
engaged in his own personal education up-date prograa. ft is a aatter of tine sharing. In ay 
case that is a tough thing to aster, what with having too aany hobbies. 

1 awa avid 15-2068 computerist, a sailor, a commerical pilot and flight instructor, and I 
Like to go golfing and fishing at least once or twice a weet. I's “between sail boats" right 
nav, and schening on a way of corbining computing and sailing. (Anybody got a 38’ ketch for 
sale under $2087), I've ordered a spare 2068 to go aboard ey next vessel and hook up to ship 
battery, I's working on a program to navigate with the 2068 so that the sailor can get about § 
hours of sleep while the 2068 is at the hela. 

Now, tine sharing as it is, I refuse to pour over the S0U taxt for typos, dangling 
participles, and split infinitudes. $0, some typos wil! be fixed with pen and ink and if ay 
saashing of the Kings English is still understandable, then so be it If you becone irkedover 

- pon-granatics just cose on down and go sailing. That's guaranteed to soothe any case of 
ircitibilitis. 1 do believe that sailing and computing will aix well, so dont be suprised if 
the January issue of SOU is published at sea, twix the tending of a trailing fishing Line. And, 
I absolutely guarantee at least 10 gatts in English and several pen and ink changes in each 
issue of SOU. See you in the islands! = a 


bys Barnacle Bill, the Sailor 


"I-UTIL® LISTING 


“#>9800 G0 SUB VAL "9884": INK OF: BORDER 00: PAPER OO: CLS i P 
RINT FLASH GASAT 00,083 "MULTI LATERAL MIXEO RUMBERS"S FLASH 
00''TAG OBS*MEMORY ORGANIZER’'' TAB OF}*DISASSEMBLER"' TAB Os 
"HEX DATA POKER''TAB ON}*OECIMAL DATA POKER*''TAB O83 INK 3} 
*CONVERSIONS- HEX/DEC/SINARY'''TAG OB} INK S$*MATH WITH MIXE 
D DEC/HEX/BIN®''TAB O63 INK 43"BINARY ANALYSIS TABLE": LET A 
21) FOR N=f TO 40: BEEP ENT ((RNO$10)#1)/10, INT (RNOE35)2 IN 
K As PRINT OVER QASAT 00,083" eb 
ET AsAt: IF A? THEN LET Ax! 
9801 NEXT Nt CLS ¢ PRINT INK oe} FLASH 1}*The ASSEMBLER/DISA 
SSEMBLER"S FLASH oof" is designed to use DATA Lines to 
rganize a Machine Code prograa in either HEX or Decinal, the 
n SAVE/ the prograa to Diskette before atteapting to RUN 
the MC prograa and chancing a crash. A CRASHED program can 
be re- loaded from diskette and worked on. DATA Lines a 
re 9878 (DEC), and 9880 (HEX)."'' The MC progran fs insta 
lled in wenory at your selected startaddress."''" Select 
d segaents of meaory are peeked and disasseabled as desire 
dd." INK of} FLASH oas "MULTILATERAL KUMBERS"S FLASH Q0)*:*! 
"The upper Linit for conversions and wath is FFFFFF h, 16,7 
77, 218decimal.*'' INK o¢ 
9802 PRINT ‘Always enter hex in CAPS."'' INK odj*You aay do 
aixed aath, aulbiply,divide, add, subbract. Watch the wen 
u for electives."'' INK oej*For Division, enter largest 
nuaber first."!'*Accurate division dividend ts expressed i 
ndeciaal fraction, OISREGARO HEX DIVIOEXO IF THE DECIMAL 
I$ IN FRACTION."'' INK of}*You say do MIXED addition using 
negative DECIMAL nuabers, BUT KOT NEGATIVE HEX. If the SU 
NM isnegative, the decinal SUM will be correct, but the Hex 
SUM willbe false."'' INK odj*Nureric expressions for DECIMAL 
input are O.K., det (PID), <2% PL SFILD « PEEK 2369542 
$64 PEEK 236963-1)." 
9003 INK of: PAUSE VAL ".14E4"S CLS t PRINT AT OJ, 08) "PLEASE 
ENTER "} FLASH OAJ*CAPS SHIFT"$ FLASH 00)" MODE*''TAS 083 *T 
HEN <"} FLASH QAJ*CONT ENTER*} FLASH 003")": STOP 
9804 CLS : LET xysoot LET Tzoo: INPUT "Selects 1. Peek and 0 


isasseable 2. Poke a Deciaal Table 3, Poke a 
Hex table 4, Convert Hex-Dec-BIN §. tt 
xed Hath 6. Binary Table"gMs CLS ¢ 60 TO ¢ 


adoa AND aDof)SVAL "9804"#(a)oo AND aCod)IVAL "9834"#(a)oc A 
NO aXOG)VAL "9808" 

9808 IF mxoe THEN LET xyzoa GO TO VAL "9986" 

9810 IF azof THEN GO TO VAL *9934* 

9812 INPUT "1. Dec to Hex, or 2. Hex to Dec 3. Quibe"st: IF 
Keoa THEN GO TO VAL "9822" 

9814 IF xeoe THEN G0 TO YAL "9804* 

9816 DIM x#(6)2 INPUT "HEX Groups*sy$i LET x$=("00000"+y$ AN 
O LEN y$=0a)#("0000"+y$ AND LEN y$=0b)#("000"ty$ AND LEN y$= 
oc)+(*00"+y$ AND LEN y$=od)+(70"4y$ AND LEN ySsoe)#(y$ AND L 
EN y$of): IF LEN y$)of THEN GO TO VAL "9816" 


SSOLQDLET Ole(L048576R( CODE x$(0 

A)-O) AND CODE x$(QAI(R)#(1048S762(CODE x$(QA)-P) AND CODE x 
$(QAD>Q); LET O2=(65S363(COOE x$(08)-0) AND CODE x$(08)<R)+( 
GSS36R(CODE x$(08)-P) AND CODE x$(0B)2Q): LET 03=(40963(CODE 
x$(00)-0) AND CODE x$(OC)<R)#(4096%(CODE x$(OC}-P) AND CODE 
x$(0C) 023 LET O4=(2563(CODE x$(00)-0) AND CODE x$(OD)<R)+¢ 
256H(CODE x$(QD)-P) AND CODE x$(00)2Q)s LET DS=(163(CODE x$( 
QE)-0) AND CODE x#(QE)<R)H164(CODE x$(QE)-P) AND CODE x#(0E 
DQ LET O6=(CODE x$(of)-O AND CODE x$(of)(RI+(CODE x$(of)- 
P AKD CODE x$of)>Q): LET DEC#D1+02+03+04+05+06; LET MS=xhs 
IF xyzoa THEN RETURN 

9820 60 TO VAL "9826" . 

9822 INPUT "Input Oecinal OR BIN Nusber: "s0EC 

9824 DIM x$Cof): LET A#DECS LET B12INT (A/1048576): LET A=A- 
8141048576: LET x$(oa)=(CHR$ (B1+0) AND B1X10)+(CHRS (B1+P) 
AND 8179)! LET D2=INT (A/65S96): LET A=A-B2365596: LET x$(08 
)a(CHR$ (B20) AND B2{10)#(CHRS (B2#P) AND B29): LET B3sINT 


(A/4096)% LET A=A~B934096: LET x$(OC)=(CHRS (8340) AND 8941 
O)+(CHRS (B34P) AND B3)9)s LET B42INT (A/256): LET A=A~B4225 
63 LET x$(OD)#(CHRE (8440) AND BACLO)#+(CHRS (B44P) AND B4)9) 
$ LET BS*INT (ACLG)3 LET AA~BSELG: LET x$(QED=(CHRS (BS+0) 
AND BS<10)#(CHRS (BS+P) AND B5)9): LET x$lof)=(CHR$ (AYO) AN 
D ACLOD#(CHRS CA#P) AND ADS): LET NS=x$2 IF xyzoa THEN RETUR 
No: REM 13 IF THEN Conditionals this line 
9826 CLS : PRINT "DEC#"}DEC}TAR 19;*HEK="} 

9828 FOR nzoa TO of: IF a$(n)>*0" THEN FOR n=n TO oft PRINT 
a$(n)ji HEXT ns G0 TO VAL "9832" 

9830 NEXT nt PRINT "Oh"! 

9832 G0 SUB 9946: GO TO VAL "9912" 

9834 LET Tzoat INPUT "Start Adr? ")$: INPUT "ENO Adr? "JES: 

IF Moa THEN FOR N=S 10 E: LET A=PEEK Ni LET X=Ni 60 SUB VAL 

#9974"; GO SUB VAL "S856" t 
9836 IF adoa THEN CLS $ PRINT ‘Working"s 60 TQ VAL "9842" 
9838 IF ND=E THEN PRINT "OONE*''*Enter when Ready."s PAUSE 4 
ed: 60 TO VAL "9804" 

9840 NEXT N 
9842 LET RTINT ($/256)3 LET GT=S-(RT3256)-oai IF GT<oa THEN 

LET 61254: LET RT=RI-oa 
9844 POKE VAL "23791",RT: POKE VAL "23730", T 
9846 RESTORE (M=OB)SVAL °9878"+(M=OC)S¥AL "960" 


9848 FOR N=S TOE « 
9950 IF Meob THEN ON ERR GO TO VAL "9882": READ A POKE NAS 
NEXT H 
9852 IF N)*E THEN G0 TO VAL "9892" 
9954 IF Mxoc THEN ON ERR GO TO VAL "9982": READ X$: G0 SUB V 
AL "9876" POKE N,As NEXT N 
9856 LET AsPEEK Xi PRINT X}TAB OGJANTAB OK}"d"}: GO SUB VAL 
"9974": PRINT TAB OQsx$}" h*}s ON ERR GO TO VAL "9862" PRIN 
T TAB VAL "24"3CHRS A 
9858 RETURN 
9860 ON ERR RESET : PRINT + RETURN 
9862 ON ERR RESET : PRINT i RETURN 
9864 IF AC33 THEN PRINT * * 
9866 IF T=oa THEN RETURN 
9868 POKE X,Ai IF N=A THEN PRINT “DONE*: BEEP oa,OL: 60 TOV 
aL "9804" 
9870 LET xextoa 
9872 NEXT 
Cent Neel Page 


SO7ADDIN x$(08): LE 

T BEINT (A/16)2 LET C#A-B416: LET x$(OA)*(CHRS (B40) AND BCL 

O)F(CHRS (BAP) AND BDO): LET x$(OB)=(CHRS (C40) AND CX10)4(C 

HRS (C#P) AND €>9)2 RETURN 

9876 LET Di=(1GS(CODE x$(OA)-0) AND CODE x$(0A)<R)#(163 (CODE 
x$CQAD-P) AND CODE x$(QA)2Q)! LET O2=(CODE x$(08)-0 AND COD 

E x$(OB)4R)+(CODE x$(0B)-P AN CODE x$(0B))Q)s LET AD1+D2% 

RETURN 

9878 DATA 84,104, 105, 115,92, 100,97, 116, 97,32, 116,97, 98, 108,1 

01,32, 105,115, 32, 115, 104, 111, 114, 116, 46,1000 

9880 DATA "54", "68", "69," "60" ,173%, 767,720", "69", 
"79" "207 ,"69", "GE", "20", 760) 65%, "GD", GF", "72", "79", 226", 

*sTop* 

9982 ON ERR RESET $ CLS $ PRINT ''*The wessage is in nenory. 
The starting adr "39j", "'/*Use the MENU to PEEK it out 

LT PCENTERD!Y PAUSE WAL "4e4": CLS ¢ G0 TO VAL 79804 

9904 LET oo=0: LET xysoot LET oa#lt LET ob=2: LET oc#3: LET 

od=4i LET o¢#5: LET of=6: LET O6=7: LET OH=@: LET O19: LET 

QUeL0: LET OKeLL: LET OL=12: LET OM=19: LET ON=L43 LET OP215 

+ LET OQ=16: LET ORS17: LET OSe1@¢ LET OT=t9: LET QU=20: LET 
O49! LET PeSss LET Q2643 LET Re6Ss LET A*OA: DIM U(24)} FO 

R Net TO 26 LET UCN)#AL LET AaA#AS NEXT Ni RETURN 

9886 INPUT "Select Choice: 

41) Add <2) Subtract 3 Multiply 

45) Hone Menu "Iglt IF gl<oa OR gldoe TH 


44) Divide 

EH G0 TO AL "9886" 
9888 IF gl=oe THEN 60 TO VAL "9804" 

9890 CLS $ INPUT "First Humber REX or DEC/BIN? © <1) Hex 
42) Dec/Bin*sML IF ml<oa OR at?ob THEN 60 TO VAL "9690" 
9992 INPUT "Second Number HEX ot Dec/Bin? (1) HEX <2) Dec 
(Bin "pr2i IF w2Goa OR e2dob THEN G0 TO VAL 19892" 

9894 IF aleoa THEN INPUT "INPUT First Nusber (HEN) "ly$t IF 
ys="" THEN 60 TQ VAL "9694" 

9896 IF mlzob THEN INPUT INPUT First Nuxber (Dec/Bin) 
yst LET nfaVAL ys: IF y$="* THEN 60 TO VAL "9896" 
9998 IF a2°0a THEN INPUT "INPUT Second Nuaber (HEX): "Jz8i 1 
F z$="* THEN GO TQ VAL "9898" 

9900 IF a2=ob THEN INPUT "INPUT Second Nuuber (Dec/Bin) "4 
zht LET n2=VAL z$t IF z$="" THEN GO TO VAL "990° 

9902 DIM x$(of)t IF wtoa THEN LET xSe(y$ AND LEX y$=of)+("0 
"sy$ AND LEN yS20e)+( "00" +y$ AND LEN y$z0d)+("000"+y$ AND LE 
N y$#0c)#("0000"#y$ AND LEN y$eob)+(*00000"+y$ AND LEN y$0a 
)#(7000000" AND y$2""): GO SUB VAL "9816": LET nl=0EC 

9904 IF M2-0a THEN LET x$=(z$ AND LEN z$sof)+("0"+z$ AND LEN 
z$=00)4("00"#2$ AND LEN z$"od)+("000"#z$ AND LEN z$#0c)#("0 
00%+z$ AND LEN z$20b)+("00000"4z8 AND LEN z#=0a)#(*000000" 
AND zf="*)s GO SUB VAL "901": LET N2=DEC 

9906 IF Glzoa THEN LET DEC=NI#N2t G0 SUB VAL "9924": PRINT y 
Ch? AND Misoa)+(#d® AND Ml=ob)y"#"9z85("7N" AND HZe0a) +("d 
* AND M2=ob)5"=")DEC"d"y" and "3 

9908 IF Gl=oa THEN FOR N=oa TO oft IF MS(N)>*0" THEN FOR N=N 
TO off PRINT HS(N)3! NEXT Ni PRINT *h'': GO TO VAL "9912" 
9910 IF Gl=oa THEN NEXT Ni PRINT "ht? 
9912 IF @leob THEN LET DECeNI-N2t G0 SUB VAL "9024": PRIKT y 
$yCth® AND Misoad+("d® AND Ml=0b)3"="3z8) (*h* AND H2e0a)+("d 
* AND M2=0b)]"="JDECS"d and" 

9914 IF Gl2ob THEN FOR Nel TO oft IF x$(X)>"0" THEN FOR N=N 
TO off PRINT x8(N)}3 NEXT Mt PRINT *h*'s GO TO VAL "9918" 


4 


i 


916) F Glob THEN REXT Ni PRINT "Oh?! 
9918 If Glroc THEN LET DECeNLSN2: G0 SUB VAL "9824": PRINT y va 
$7CTNe AND Hl=oa)#("d? AND Misob)p" 4 "3z8) 07h" AND W2z0a)+¢ 


| fd" AND M2-ob)}*="70EC}"d"y" and "$ 


9920 if Gizoc THEN FOR Neoa TO oft IF x$(N)>"0° THEN FOR WEN 
TO oft PRINT xS(N)$ NEXT Nt PRINT "ht"; GO TO VAL "9924" 
9922 IF Gl-oc THEN NEXT Ns PRINT “Oh!” 
9924 IF Gleod THEN LET DEC=NI/N2: GQ SUB VAL "9624": PRINT y 
SCRE AND Hlzoa)#(%d® AND MLeob)s* / "4z85(*h" AND M220a)4( 
*g" AND M2z0b))"="}0EC}"d and "y 
9926 If Glrod THEN FOR Hroa TO oft IF x$(n)>"0" THEN FOR KEN 
TO off PRINT x$(ND$$ NEXT Ne PRINT *h"'s GO TO VAL *2930° 
9928 If Gleod THEN NEXT Ni PRINT "Oh"! 
9930 60 SUB 9946: 60 TO VAL "9886" 
9932 60 TO VAL "9986" 
9934 CLS PRINT “ALLL L112 1422 LULL L411 L421"gAT 00,20) 0 
VER 1} FLASH 13" "y OVER OO} FLASH O0''*From Right T 
oLeft, the Binary bit data is given for a 24 bit BIN grow 
p. Left coluan is bits 1-24 with bit content, GROUP = Cont 
ent and progressive possibleTotal content.*''t LET art: LET 
beO: LET C00 
9996 FOR y=t TO 24 STEP 4: G0 SUB VAL "9940"S PRINT TAB 103b 
"NEXT y ca 
9998 PRINT ''"BIN-HEX-DECIMAL DIGIT AND GROUP ANALYSIS" 'TAB 
QV"FYSTAB 7pF' TAR 125"F*STAB 175"F "STAR 225°F*STAB 27) 'F* 
COPULLL LEE ALLL ALLL L2LL "J FLASH OAS"L111"3 FLASH OO''** Aaoos 
hte sees nena eee [eitag 2ppatee ginasens anee cee 
884 GPETTAB 25)"° 8 Lt'TAB 20)4°°°°'3TAB 20)"F 
I5"'TAB 20} FLASH OAS*LLEL'| FLASH OO'***** * race 
sees tg TTRB 2098" 92tTAB 205°" 64 GP=2! 
: 128 Fe2g0"'TAB 15} FLASH OAS*LLL1") FLASH QQ'***** 
oe seo" 256" TAB 15)"°** S12"'TAB 153"** 1024 GROUP : 
-a"'TAR 15)"° 2048  F#3840" 
9999 PRINT TAB 10) FLASH OAJ*I111"} FLASH QQ'***** “*** **** 
A,0968'TAR 10)7***_8, 192"! TAB 103°" 16,984 GROUP~4"'TA 
“192,768 F=61,440"'TAB $3 FLASH OAS"L111"} FLASH .. 
CS 65,596"'TAB S59°** 131,072"! TAB S4***_262, 144 
GROUP-5°' TAS $3"*_524, 288 Fe983,040"' FLASH 0 
ASTLLLLS FLASH OO'*****_1,048,876"'"*** 2,097, 182 GRO 
p-gr'r** 4,194,304 F#15,728,640"'"*_€,388,608"''*T0T 
AL CONTENT=16,777, 2157 L6MBTS"'' FLASH oa} "ENTER"S FLASH 003 
* When Ready"t PAUSE VAL "ded": CLS: GO TO VAL "9804" 
9940 LET C=00: FOR n=OA TO OD: PRINT at LET b=bta: LET CHCA 
{ LET aeat2: NEXT nt PRINT FLASH OASC} FLASH OO} 
9942 RETURN 
9944 FOR n=oa 10 od: 
RETURN 
9946 LET M=DECs DIM T(24)3 FOR N24 TO 1 STEP ~1¢ LET T(N)=( 
1 AND M>=UCHD2#(O AND MCUCND DS TF TOMD=4 THEN LET M=H-U(N) 
9948 NEXT W 
9950 ="; FOR N=24 TO 1 STEP -13 IF T(N)@1 THEN FOR Y= 
1 TON: LET T$TS+STRS TCV): NEXT Ys G0 TO 9953 
9952 NEXT N 
9953 LET Ms="": FOR N=LEN T$ TO 2 STEP -1i LET Mf=H$+T$(N)E 
NEXT N 
9954 PRINT ''*BIN="$M$% RETURN 


—~ Bed — 


PRINT at LET bepta: LET asb¥ob: HEXT ni 


ae 


Quick and 


THE QUICKIE LIST: Sometines the shorties are the most 
useful This one was sent by Mr. Robert Hartung. Did you 
digest his articles in CTM? If not you should back up four 
issues of CTM and dig his series. (quote? To make a hard 
copy of a disk CAT for, labels, or an index, or a copying a 
streent {OPEN 4#2,"P": LET /p=0) When CAT/ is entered the 
disk directory goes to the printer instead of the screen. 
Or, any PRINT statement will go to the printer. Uhen 
finished, <CLISEH2) to terminate. (Thanks Bob!) 

YES - HO INKEY$ for use after a pronpt requiring YES or 
NOt G0 SUB 200 will cause line 200 to loop itself until a 
Y, y, N, or nkey is touched. YES assigns z=1 or NO assigns 
272, <200 PAUSE VAL "4e4"s LET T= INKEY$ ¢ IF TS<)"y* AND 
TSQ)ty* AND T$<)"n" ANQ T$<)*N" THEN GO TO 2002 <202 LET 
z=(1 and T$="y" OR t$="¥")+(2 AND TS="0" OR T$=*N"s RETURN) 

INKEY$ Prompt for any key: Any key touched will result 
in its character being input to TS, Numbered characters 
will be represented by variable 2, Ideal for use with (40 
SUB) after menu that has several selection options. (200 
PAUSE VAL "ded": LET TS=INKEY$! LET z=CODE T$-48: RETURN). 


KEY LOCK after the above INKEY$ routine is used: | 


Suppose that you have a MENU with 9 selection choices 1-9. 
460 $U8 200 will wait until a key is touched, then assign 
"Zekey struck". BUT, we want to lock out all except 1-9. 
490 nenu print statements: G0 UB 200) <102 If 241 OR 2)9 
THEN GO 10 90). Better still, lets use one line to lock the 
keys, PLUS- take acbion on ALL 9 menu selections. <102 60 
TO (xX OR 299)K904 (r=4)9150+ (22282004 (z=3)4300+ 
(r=4)$400+ — (z=5)¥5004(z=6)%6004 = (z=7)4700+ (z=8)8800+ 
(12974900), In this case there are 10 IF THEN logicals in 
line 102 that sends the progran to the line numbers 
following the condition enclosed in brackets. (BOOLEAN 
Logicals works just fine, and conserves lots of memory, We 
will publish an article soon about Mr. Boolean's 19th 
Century works and how the logic applies to BASIC Computer 
programming.) 

THE SO0S PRINTER ORIVER: <LET /P=0) enables the built 
in Centronics printer driver. LPRINT commands then sends 
character streams through the Qliger or Aerco printer 
interface to a centronics printer, There are two TS-2068 
Renory addresses that one needs to know. The LET /P=0 safe 
disk command "zeroes address 23924, which is used as a 
avitch to command a line feed. If PEEK 2924=0 then NO line 
feed is directed by the printer driver. So, if your printer 
requires a line feed, you aust POKE 29324,10. Another 
inportant address is 29923 which contains "Maxiaum Line 
Length’. LET/P=0 places 255 as the content of Adr 23323. 
For post printers this is 0.K., even if the printer's 
naxinua line is shorter than 255 characters, If you want to 
limit the printed line to any given length, say 60 
characters, then POKE 23323,60. Then you aust take TAB into 
consideration, For examples <LPRINT TAB 20;A$? would be 
O.k. if the length (LEN) of a$ were 40 characters. An 
additional character (41) would force a line feed and wrap 
print to the next line. A problea would occur if printing 


Easy Routines 


lines of a character array where the eapty ends of the array 
lines are spaces. LLISTS in columns of 60 lines are easily 
printed by <LET/P=0: POKE 23323,60: LLIST>. If you vant 
double spaced LLIST lines, add <POXE 29324,10) before the 
CLIST command, 

SOFTWARE CHECK OF PRINTER STATUS: This may cose as a 
"EUREKA! revelation’ 0 some who are having trouble 
constructing program lines to COMMAND A PRINTER to change 
formats or print styles. When your printer is sitting there 
vith lights on, it is in a READY STATUS. To be sure you can 
Type <PRINT IN 127 ENTER). If the printer is READY, a "237" 
vill appear on screen, When constructing progran lines to 
CONMANO the printer to do such things as changing a print 
style or set EXPANOED characters, the prograrming is <OVT 
127,nunber) then (QUT 127,another number) until all required 
"change commands" are sent. The problew is, a printer is 
slow to execute the comands, while the computer is fast in 
sending the commands. Most likely, the computer will finish 
sending three or sore commands before the printer has 
| executed the first one. As a result, the printer may not 
SEE sone commands. 4 program loop is needed to make the 
software WAIT until the printer is in a REAQY status, Here 
Jit ist  <$00 IF IN 1275253 THEN G2 10 100)t RETURN). When 
the printer is NOT READY, the command <PRINT IN 127 ENTER) 
returns the nuaber 253 (BUSY). So, a <G0 SUB 100) placed 
between each printer command will loop at line 100 until the 
printer is READY, and then RETURN for the next command. The 
COKKAND LINE would look like this: <50 60 SUB 100: OUT 
127,27; GO SUB 100: QUT 127,60). A printer BUSY status 
jwould hold up each command at line 100 until the printer 
status changes to READY (237). 


PSEUDO HEX YARS TABLE with LETTERHEAD GATA 


This vars file can be stored in disk for call up to 
your programs. Numbers 0 through 20 are represented by 
"double QO vars" as, 0050, ob=2, oc=3, through ous20. When 
used in a program, each number 0-9 usage will conserve § 
bytes of memory. Each usage of the vars for numbers 10-20 
conserves § bytes. N$ array is set up to service a 
LETTERHEAD, SIGN OFF, and SALUTATION BLOCK needs for letter 
correspondance. See the listing for designations. 


§ REK 2X4 Type <CLEAR? then <G0 SUB 10> then <SAVE/"pseu 
"VALNote the letter support data forN$ array. Array lines 
1-S are reserved for Salutation block: {Company name. 2=) 
ept, d*Streetaddress. A=City State Zip. 5= correspondants 
first name. L0input date. {l=spare ling. 

§ REM $4%Use (LOAD/"pseu"VALDin a program line to initial 
ize the variable table into a activeprogran, 

10 LET oo=03 LET oa=ti LET ob=2: LET oc=9: LET od=4: LET 0 
e=5; LET of=6: LET og=7+ LET ET of=9: LET 
ok=iti LET ol=12: LET om=13: LET on=143 LET op=15: LET oq=16 
2 LET or=17: LET os=18 LET of=19: LET ou=20: DIM n$(13,31): 
LET n$(6)="letterhead first line": LET n$(7)="second Line": 
LET n$(8)="third line”: LET n$(9)="fourth line": LET n§(1t) 
s'Sincerely"! LET n$(i9)="Signature line": RETURN 


3 


Programming with SDOS BASIC Commands 


{LET /0=0?: The range of disk selection is 0-3 to select one of up to four 
drives in a system, where disk number zero is the first disk and disk nunber three 
is the fourth disk.  Oisk drives are connected via to cables, the 36 conductor 
data/control cable, and the 3 conductor power cable. When a <LET /0=) command is 
sent, the SD0S sends "switching signals” to the “drive nunber selected by the LET/0" 
command’, The signal "turns on the drive power”. The disk door handle (most disk 
drives) is also a switch. When the door handle is open, the disk drive cannot be 
selected. When the door is closed, the drive may be selected. The power supply is 
passive, in that power is supplied to all disks, ready to be switched by SD0S. 


The cables to the disk drives are very simple. Connections are parallel. Each 
disk drive and the SD0S controller uses the same 36 pin connector. These connectors 
are simply "pressed on” to the 36 conductor cable and spaced so that the connectors 
will reach the plugs of the disk drives, For nore than one disk drive, the pover is 
connected via "Y splitter cables’. The parts to fabricate these cables are widely 
available and quite inexpensive. 


Host disk drive power supplys have sufficient power to operate four drives. If 
erratic operation is experienced while operating a multi drive system, the door 
latches of all drives except the one in use may be opened to relieve the pover 
drain. | Power supplies should be enclosed ina netal cabinet for shielding. The 
signals carried vithin the 36 conductor cable can be distorted by radiation of EMF 
from a un-shielded power supply. Also, diskettes placed within range of such fields 
can be made un-readable 


Although ve are limited to four "addressable" disk drives in a $00S system, 
wore drives may be operated. At right is a “speculated? systea of eight drives of 
different size and track formats, Such a system vould allov the use of 3°, 5 1a" 
and 8" drives ina system, and two of each type drive. Yhen more than four drives 
are connected, all except the one in wse should have the drive doors open so that 
the parallel drive is dead. Parallel drives are two or nore that have the internal 
drive switches get to the same “drive number". One other consideration is the 
"terminating resistor’ should be in the active chain, I hope that someone will 
connent upon this, as I have operate ny four drive unit with the "door open* on the 
drive that has the resistor, and no ill effects have been noted. 


{LET /S+1) would be needed after a drive has been selected IF the disk is a 
single side disk (it has only one read/write head). The $00S systea will set itself 
for double side drive if there is no LET/S=1 command. 05/00 diskettes may be used 
for single side forsats, but not vice versa. A diskette that is formatted with 
LET/S1 can be written to or read from by a 0S/00 drive, but a single side drive 
cannot read a disk formatted with LET/S=2. 


ALET/T=40) establishes the foraat for 40 tracks. Normally a 40 track diskette 
will format to 41 tracks and give reliable read and write results, This will give 
400K of disk free on a 40 track or 805K on a 80 track diskette. A diskette will 
accept LET/T#44, and will indicate a good forsat, however I have found that the 
capacity is really only 400K, and disk read/write errors occur if there is an 
attempt to store more than 400K. (LET/T=82 and 805K for 80 track drive). 


I have had alaost a year of trouble free disk operation with two § 1/4" 09/Quad 
DENSITY drives purchased from BG Hicro (price $89.00 each) One of the original 
drives vould not read/write upon receipt and was replaced promptly and without 
question. (1 thought some would like to know this.) SOU vill discuss sore about 
the S00S BASIC comsands in each issue. 


EXPANSION 
foaT- 


cd 


ad 


Diss 3 ie 1 


a" DS 
y1 Ae, 

| Brno Bra 
o 


YY 


dsr Acs 
3" DAvD 


i 
SY"GOTR 3 
V3 | ra ben 


ke 
pear yee 
5%" dsb 
VEL | py TR 
off 


Disk O 
5%" Ds/od 
4oTR 


-—| Dish 
Powder 
Supply 


Software amd Hardware 


ARTICLES 


and 


REVIEWS 


About Disk Drives 


There are rany types of disk drives available. 
Coanodore introduced a3 1/2 inch drive with their 
Amiga computer. Now IBM has a new 3 inch drive. We 
Sate Disk users have a system that will work with 
alnost anything that can be hooked up to a "Shughert 
Standard Parallel 1/0" Disk Drive. Safe Disk uses a 
standard 36 pin data cable. Thats great, but we 
need to think about some things before dashing off 
and purchasing =a disk drive. Of primary 
consideration is whether the drive that ve purchase 
will be supported by most of our software suppliers. 
Another thought is the cost of the diskettes for the 
drive that we purchase. Still nore} Ooes the disk 
format enough space to support “disk dependant 
software’. Lets explore soae of these factors. 


Software Suppliers aost generally supply their 
softvare on 5 1/4 inch, OS/0D, diskettes. Not aany 
suppliers of TS-2068 software are willing to 
purchase another disk drive to support a few owners 
of 3 inch, 3 1/2 inch, 8 inch, drives. To the Safe 
Disk user this means that at least one § 1/4 inch 
05/00 drive will be needed in order to take 
advantage of available disk software. Fortunately, 
Safe Disk will easily acconuodate "nixed" drives. 
That is to say, one can hook together a 2 inch 
(Portugual) disk drive with a standard & 1/4 inch 
05/00 drive, and work fron one to the other, In 
such case, < LET /d=0: LET/s=2: LET /t=40: SAVE 
/"nane” ) would save a nenory program to a “double 
side 40 track’ (Double or Quad Density) drive in 
drive 0. 


< LET /d*1t LET s#1s LET t=40: SAVE /*name” > 
will save a progran to diskette in drive { when 
drive 1 is a "single side drive’. In either case, 
the "size" of the drive is uniaportant, These two 
examples are typical of a “drive mix’ of a5 1/4 
inch 08/00 in drive Zero, and a "Portugual 3 inch" 
drive in drive 1. All other Safe Disk 
LOAD/SAVE/FORMAT commands work as well for such a 
drive mix. The beauty of Safe Disk is that it 
allows "progran coamands” to svitch operation frow 
‘one type of drive to another. Most disk operating 
systens are fixed in the interface firavare to 
operate with only one type of drive. How does one 
"hook up" two drives that are different? Thats 
sinple too, Another 36 pin connector is simply 
"pressed on* to the existing data cable for hook-up 
to the back of the second drive. These press-on 
connectors are widely available. Also, a *Y 


splitter’ power cable is attached to the existing 
drive power cable that connects to the disk drive. 
So, getting into business with a second disk drive 
"of another size" is very simple. What about the 
cost? Well, one firm "BG Micro® sells TEAC 0S/00, 
40 Track drives for $69.00, The sane fira sells 
1/42 80 Track, Quad Density drives for $89.00 each. 
The "Y Splitter* and Qata Connector can be purchased 
for about $3.00. 


For about $75.00, one can add a standard 40 or 
80 track drive to a Portugual Orive, have the best 
of tvo excellent systens, and load software supplied 
by our vendors. My drive configuration ist Tyo 
0$/00, 40 track, plus Two 0S, Quad Density, 80 track 
drives. The 40 track drives format to 395K 
capacity, and the 0 track drives format to 795K 
each, for a total disk system capacity of 2370K. 
The nice thing about using this six of 5 1/2" drives 
is that the diskettes are interchangable. Prograus 
on a 40 track diskette will LOAD in the 80 track 
drives. Also, 80 track diskettes will FORMAT to 40 
tracks and become usable in the 40 track drives. 
Another good point is the cost of the diskettes, 
about 59 cents each from gail order sources. 


Disk Dependant Softwares The concept is to 
elininate all menus and screens from the aother 
progras. Put thea in disk for quick boot in as 
needed, This saves about 1/3 of a prograr's length 
an allows many nore functions to be added. Also, 
data files are duaped to dist before computer menory 
becones full, and variable files are saved to disk 
for use by the nain progran. Next, with the new 
NERGE capability, entire segments of a program can 
be saved as ‘program cells” in diskette, to be 
MERGED to a software program as needed. The concept 
allovs the software to have a “program length” that 
far exceeds the memory capacity of the computer's 
RAK, This requires lotsa disk capacity, aore than a 
single side disk can hold. This is another reason 
that at least one disk in a system should be a 
double side disk. The single side disk just does 
not format enough disk capacity for such programs. 


So, whether ve like it or not, the "Standard* 
for most small computer systeas is the § 1/4 inch 
DS/D0 Drive. The 5 1/4 inch diskettes are the least 
expensive. The drives theaslves are less expensve. 
The 0S/DD drive formats enough continuous disk 
capacity to accomodate extensive "disk dependant” 
software. And, all software vendors support the 5 
1/4 inch 08/00 drives. 


By: Bill Jones 


SDOS MAIL MERGE 


Complete This Issue 


A Major Software for S005 


The feature program for the October 88 issue is “$00S)) 
WAIL MERGE", a major software that was designed specifically | 
for this issue. There are several reasons why this softvare 
is special, and vhy almost all will surely want it. First, 
it is the ONLY “printing software’ that will work AS IS with 
ANY Centronics printer, plus the TS-2040 printer. There is 
absolutely no monkeying around changing line nunbers 
required to make it print with "brand y" printer. Second, 
it has many more features than just a Mailing List software. 
It is a "Dual Data Base" and printing software that can be 
used for many purposes. Third, the data products are siaple 
Character © arrays that can easily be transferred from 
diskette to other operating softwares, using the LOAD 
P*X"DATA x80. comaand, I 

The purpose for designing S00S for SAFE DISK UP-DATE 
vas two fold 1. A good software of this kind was not 
available. 2. A vehicle was needed for illustrating the 
versatility of SD0S. I'll tell you a little tale on ayself 
to make a point. A year AFTER buying a new Edsel, I 
discovered that the seat would tilt forward, as well as 
adjusting fore and aft. We have that nice SDOS system which | 
has many many capabilities to discover. Safe Disk Up-Date| 
vill try to reduce the discovery time. This software can! 
unveil many tricks of S005 prograwaing AND, it will 
definitely fill a gap in our T$-2068 software needs. 


FUNCTIONS 


There are two main data bases, both flexible to the, 
user, The "main" data base is for listings of all types, 
"Mailing List” being the common usage. A "field" consists | 
of 7 lines of data. The data lines are organized by “field! 
nunbers" as follows: 1. Company Nawe. 2. Department. 3. 
Street Address. 4. City, State, Zip. 5. First name. 6. 
Telephone ‘Nbr. 7. Other data. The operator is prospted to 
"Input Number of Fields". This allows from one to about 120 
fields to be organized. Then prompts ask for inputs by line 
number. A Listing can be discontinued at any time. Menu 
choice allows "adding to" the list at any field number. $0, / 


if one inputs 20 names and quits, the next entry can be), 
started at ‘field 21" by prompt. Menu choices are: 1. I 
Start New. 2. Correct. 3. ADD TO, 4. View, § i 
Print/Labels/Envelopes. 6. SAVE. 7. DELETE Data. 8. Sor 
File. 9. LOAD File from Disk. i 

Ancillary functions are! 1. Centered Captions. 2. Page | 
Management. 4. Directed Line Space. 5. Directed Page End. 6. 
Print a Centered Letterhead. 7. Print a Sign Off. 8. Single. 
or Oouble line spacing. 9. Change Line Length. 10. Set Up a- 
Qutline. 11, Print Outline, The "Qutline Functions”) 


a 


Program Listing 

490 INPUT "Number of Mailing list Names?"sht LET k=h: LET b$=" 
402 INPUT "Sort by: <1) First name 42 Las 

4 name"}z 

404 IF z=oa THEN 40 SUB VAL "£010": 60 TO VAL "S00" 

406 IF z=ob THEN GO SUB VAL "640": GO SUB VAL "L010": G0 SU 
8 val “670" 

500 80 TO VAL "2000" 

640 CLS : PRINT FLASH oajAT oj,caj"Last Name Reverse 40 Se 
conds"jAT ck,oaj*Line 640°: FOR n=oa TO hi IF o$(n,oa)(oa 10 
od)=" " THEN NEXT nt RETURN 

642 LET b$=0$(n, 0a) 

646 IF BSCLEN b§)=" " THEN LET bS=b$( TO LEN bS-oa); 60 10 

VAL "846" 

650 FOR 1*LEN b$ TO oa STEP -oai IF b$(oa TQ od)=" 
N NEXT n 

652 IF mk THEN RETURN 

654 IF bS(1)=" " THEN LET o$(n,oa)=b$(1¢0a TO )+* "#0$(n,oa 
YC TO Let NEXT a 

656 NEXT 1 

668 NEXT 0 

660 RETURN 

670 CLS $ PRINT AT oj,oas"Replace First name- 40 Seconds"iA 
T ok,oas"Line 670": LET b$="" 

672 FOR nzoa 10 kt IF 0$(n,oa}(oa 10 od)=" 
+ RETURN 

674 IF ndk THEN GO TO y 

676 LET b$=08(n,oa) 

682 FOR 10a TO LEN b$: IF b$(1)=" ’ THEN LET b$=08(n,oa)(l 
toa TO): 60 TO VAL "686" 

684 NEXT 1 

686 IF DS(LEN bS)=" * THEN LET b§=bS( TO LEN b$-oa): G0 10 
VAL "686" 

688 LET o$(n,oa)=b$+" ‘+o$(n,oa)( TO 1) 

690 NEXT 9 

692 RETURN 

1010 CLS ! PRINT AT oj,oh} FLASH oag’Sorting- 1 Minute"JAT o 
k,ohj"Line 1010": O1M vb(of,31): LET neh 

1020 LET T=N-oa 

1030 FOR J=oa 10 1 

1040 LET K=J+oa 

1050 FOR L=N TO K STEP -oa 

1052 IF o$(1,0a)(oa TO od)=" * THEN GO TO VAL ‘1100" 

1060 IF o$(L,0a)?0$(J,oa) THEN G0 TO VAL "1100" 

1070 IF 0$(1,0a)(oa TO od)<)" “THEN LET b8=o$(L, oa): LET 
y$(oa)=0$(1,0b)! LET vé(ob)=0$(1,0c)! LET v$(oc)=08(1, 0d): 
LET v$od)=08(1,0e): LET vS(oe)=o$(1, of): LET v8(of)=08(1,09 

) 

1080 IF o8(1,0a)(oa TO od)<2” "THEN LET of{L,oa)=o8(J,0a 

) LET of(1,ob)=08(j,ob)! LET o$(1,0c)=0$(j,0c)s LET o$(1,0¢ 

)=0$(j,od)! LET 0$(1,0@)=08(j, oe): LET o$(1,of)=08(j,of)% LE 

T 08(1,09)=08(j,99) 

1090 LET o8(J,0a)=B8: LET o9(j,ab)=vS(oa): LET o${j,0c)=v$lo 

b)t LET 0$(j,od)=v$(oc}: LET o$(j,oe)=v$(od)s LET o8(j, of =v 

$loe): LET 08(j,0g)=v8(of) 

1100 NEXT 

1110 NEXT J 

1120 CLS : FLASH 09 

1130 RETURN 

2000 CLS : PRINT AT 2,6) INK S3"MAIL"}TAB 195 FLASH 1](*Yes" 

AND LEN o$(€1,1)21)4("No " AND LEN o8(1,1)<2)3 FLASH OF" ML 

DATA''TAB 9}"MENUSTAB 195"FREE="3 FREE 3" "''TAB 63 INK 6 

s*X1) Start New''TAB 6} INK 53°42) Add to List*'TAB 6} INK 6 
cenT — 


"THE 


"THEN NEXT 


involve a second flexible data base to use for producing a 
outline with aajor and minor topics. Printing of the 
outline is in the outline format vith selectable TAB for 
najor topics. Minor topics are then indented five spaces. 


OPERATION 


Other uses of the mailing list data base are: Invoices, 
Inventory lists, Telephone lists, Magazine article indexes, 
or any data groups that one can set up in 7 line fields. 
The capacity of the mail/inventory data base is about 120 
fields, as progranmed. The fields may be dimensioned larger 
or smaller by simple line number adjustment (Line nbr 2005). 

Simplicity presonified! You just cannot get into 
trouble, and the software is crash proof. A sistake in 
operation vill result in a ‘report code” stop. The cure is 
(80 TO FMD in every case, <GO TO FM> presents the Function 
Nenu, and all program paraneters are preserved. There is 
only one possible exception to this easy fix. If you have 
established a “outline data base” and then you select “Start 
New” at the Mail List Nenu, it is possible to “over 
dinension® the mailing list data base by input of too large 
a number for "Number of Fields". When a coamand is given to 
DIMENSION a character array, and insufficient memory exists, 
the vars file is corrupted which results in a CRASH. Now 
this little blurb on operation is indeed skimpy, but what 
can one say vhen words are not necessary? The Menus provide 
ample guidance with literal selection choices, thus no need 
to study instructions. 

The Mail/Inventory List Printer: A prompt asks for 
"Input Number of Fields to print”. If printing labels or 
envelopes, "4" would be the correct input. Then "TAB, and 
Spaces between’ are proupted. Inputs allow the printing to 
strike the labels or envelopes uniformly. The software 
differentiates between a three or four line address and 
spaces accordingly. Another prompt asks, “Twin Labels?”. 
If Yes, then your own return address label prints between 
each "out label". When you want to print inventory or other 
data set-ups, an input of 7 will result in all 7 lines 
printing. Any number of fields 1-7 way be elected to print 
out. 

Menu electives set up automatic SAVE or LOAD of the 
data bases OR a program that contains data. A proapt “Input 
File Number" makes each LOAD or SAVE discrete. LOAD 
selections result in the disk catalog presented on screen 
vith a pronpt "Input File Nae", The Load is automatic and 
the Function Menu appears. Ab that time all software 
functions are available. 


PROGRAMMING 


$00$ Mail Merge utilizes the <LET /P=0) or (LET /P=T) 
functions of $005 to print with any Centronics printer or 
the T$-2040. Inputs allow the configuration of desired line 
length for any pre-set print style. The built in $005 
printer driver is used for printing. The software itself 


Program Listing (cont.? 


{ $743) View List"''TAB 63"44) Correct List*'TAB 6% INK 555) 
| Print Lab/Env/Inv"'TAB 6} INK 63"<6) Disk SAVE"! "TAB 63"<7) 
| Oelete Mail Datat'TAB 63 INK 53°48) Sort File*' TAB 65 INK 6 
| g"<"} FLASH 13"9"3 FLASH 03") Function Menu"! 'TAB 6} INK 53" 
|) (0) LOAD Mail File*'’TAB 63"Page="ipgi" “}TAB 20;*Line="ion 
| 2002 PRINT AT ot, okipgi" “SAT ob VAL "25"snnj" “SAT ob,oty F 
| LASH oaj(*NO * AND LEN 0$(0a,oa)<ob)#(*Yes" ANO LEN o$(oa,oa 
))oa)s FLASH oosAT oc VAL "24°s FREE 

2003 GO SUB SQ: 80 SUB Tl: GO TO (2400 OR rrDL)EVAL *2000*+( 
Z=OQ)¥VAL "9020*#(Z=0A)SVAL *2004"4(z)0A AND Z2(QF)3VAL "2007 
"4(Z20F EVAL *2600"+(Z=06) 4VAL "205B"4(Z=0H) AVAL "400°+(Z=01 
)aFA 

2004 CL$ : PRINT AT QJ,OF) FLASH OAS"Confirm, START NEWS FL 
|| ASH OO''TAB OF3"<y> Yes -or- <n) No": GO SUB SQ: GO SUB Ik: 
IF 220A THEN INPUT "Input Nbr of Names"jmx: IF ax3VAL "217*) 
VAL *27000" THEN GO TO VAL "2004" 

2005 DIM o8(mx,7,31)2 DIM O8(nx, 7,31): LET IN=OA: LET ms=0A: 
CLS: 60 TO VAL "2009" 

2006 GO TO VAL "2000" 

2007 IF 2)0A AND 24OF THEN INPUT ‘Ent Strt Nbr “3MS CLS if 
NPUT "Ent end Nbr "SAX: CLS 

2008 IF 2=0€ THEN CLS: INPUT “Twin Labels? <y) yes or <n? WN 
o "S48! INPUT "Ent sps bet: "sSX: INPUT "Ent Tab "sTB: CLS 
s INPUT "Nbr of Fields (1-7) 4 for labels*}xt PRINT AT 0U,08 
$"Oo you want Page Control?": INPUT "<1> yes or <2) No "SKI 
IF koa THEN PRINT AT OU,00;"Ent "*PG"* for same page, or a 
nbrto change. “: INPUT PG: PRINT AT OU,O0}"Ent "*NN"" for 5 
ane line count,or nbr to re-set line count, ": INPUT NN 
2009 FOR O=KS TO MX 

2010 IF 240C THEN G0 SUB VAL "2022" 

2011 IF 2=00 THEN GO SUB VAL "2110" 

2012 IF 2=0C THEN G0 SUB VAL *2034” 

2014 IF 2=0£ THEN GO SUB VAL "2040" 

2016 IF Q)=HK THEN 60 TO VAL *2000* 

2018 NEIT O 

2022 CL$: PRINT AT OF,OFS"Mi No. "30 

2024 CLS : PRINT AT 0g, 0050$AT OJ,00;"Input "}("Co Name * AN 
D INFOA)+("Dept ©" AND IN=0B)4("St adr" AND IN=OC)+(*ct, 
$t,2p" AND IN=OD)4+("ist Name” AND INSOE)+("Tel Nor " AND INF 
OF)+("spare dta” AND inzog)}" or zz to quit."s INPUT TS IF 
Tée"2z" THEN LET INeOA: LET O=MX: CLS : RETURN 

2025 LET 0$(0, IN)=1$ 

2026 IF IN=O6 THEN CLS ; 60 TO VAL "2030" 

2028 LET INSIN+OA: GO TO VAL "2024" 

2030 PRINT AT OH, 0030$(0,0A) '0$(0, 0B) '0$(0,0C)'0$(0,00)'08(0 
,0E)'0$(0,0F)'0$(0,0g)''"0K? <¥) Yes, or <N> No": GO SUB IK 
+ IF 2508 THEN LET IN=QA: 60 TO VAL "2024" 

2032 CLS i LET IN=GA: RETURN 

2034 IF 0$(0,0A)(QA 10 GB)="zz" THEN 60 TO al 

2035 PRINT AT QE,00$"H1 No. "$o''08(0,0A)'08(0,0B) '08(0,0C)' 
0$(0,00)'0$(0, 06) '08(0, OF) 

2036 PRINT 06(0,09) 

2037 PRINT "Key ENT for Next: PAUSE VAL "ded*: CLS i RETUR 
4 


2038 IF LEN 0$(0,0A)<OE THEN RETURN 

2040 FOR y2oa TO x IF ysoa AND o$(o,y)( TD ob)=" " THEN RE 
TURK 

2041 LPRINT TAB tbfo$(o,y): LET nn=nntoat NEXT y: GO SUB VAL 
"2046" 

2042 IF b8="y" OR t$="Y" THEN FOR ysoa TO od: LPRINT TAB tb} 
ng(y) LET nnenntoat NEXT y: 60 SUB VAL "2046" 

2044 RETURN 


Cant — 


does not conaand the printer to change print styles, Style 
changes must be set aanually with the printer's dip 
switches, or by direct connands entered in the "K mode". If 
the user desires software controlled printer style changes, 
it is practical to build a few more lines to do that. These 
custom printer control lines would be operated in the K node 
by either <80 TO line? or <0 SUB line? 

"Now you see it, then you dont’. Saving eemory is a 
necessity in order to create comprehensive software for the 
18-2068. 38K of FREE poses limitations as to the number of 
functions that can be stuffed into a progras. The Safe Disk 
Operating System (SD0S) provides sone interesting aenory 
conservation capabilities. We conserve a tremendous amount 
of FREE Rar by first creating the needed MENUS with line 
programming, then SAVING the Screens to diskette, and then 
DELETING the program lines. A 700 byte Menu is then 
presented when needed by this sisple 10 byte command in a 


program line: <LOAD /"fn” SCREENS). Five such Menus are 
“canned in diskete’ for a saving of about 3K of meaory 
usage. 


Other memory saving techniques are used as well. A 
variable file is first created in program lines. Then after 
the vars are imbedded in memory, the file is SAVED to disk 
with <SAVE /"arg” VAL). Then the lines of programming are 
deleted. Ordinarily the variables in a basic program are 
SAVED with the program and the vars ride in with the prograe 
vhen it is re-loaded. The vars file in diskette serves as 
back up if a program is inadvertantly CLEARED. Deleting the 
program lines saves nearly a K of memory. Most isportantly, 
the vars file contains another memory saving device to be 
discussed next. 

"Pseudo 


Hex" is a neat system that uses double 


character variables to represent nusbers { through 20. | 


Qo=0, oa=1, ob=2, o¢=3, on through ou=20. Each usage of 
characters instead of numbers SAVES § bytes for numbers 1-9 
or 6 bytes for numbers 10 through 20. There are 160 lines 
of programming and each will average 3 usages of numbers 
1-20 The "pseudo hex" table saves between 4 and 5K of 
nenory. The entire vars file is only 69 bytes only part of 
which is the pseudo hex table. Therefore some 4K of memory 
is saved this way. Pseudo hex lends itself to human memory. 
Qne can count on ones pinkies with it, using oa for one 
pinkie, ob for two, etc. Soon it becomes habit. 

Another aemory saving technique is the use of BODLEAN 
expressions instead of IF THEN. Boolean expressions are 
chained in a line of programming, where IF THEN expressions 
would require single lines. For example, the tvo lines: 10 
IF fet THEN 40 TO 100. 20 IF A=2 THEN GO TO 200. A single 
line with © BOOLEAN would ber 10 G0 TO (A¢ob)s VAL 
"100%#(Aoa) VAL *200". The program makes extensive use of 
Boolean. © Some lines contain as many a 12 [F THEN logicals 
expressed in Boolean. Memory saving is tremendous, up to 
70% as compared with conventional IF THEN expressions. 
average savings realized is around 30% of total prograa 
length In this progran some 3K of memory usage is 
conserved. 


The | 


} 


| 


| 0$(0,05)'*3. *30$(0,00)'"4. *308(0,00)'"S. "308¢0,06)'"6. *5 
| 08(0,0F)'*7. "3o$(o,0g): INPUT "Field Nbr or @:"$INi IF [No 


Program Listing (cont ) 


2046 LET DD=SX: IF K=0A AND SX#NND=LN THEN GO SUB PES LET 00 
200: RETURN 

2047 IF 00)00 THEN LPRINT : LET OD=D0-OA: LET NN=NN#OA: IF N 
ND=LN AND K=QA ANO NN+OD)=LN THEN GO SUB PEs LET O0=00: LET 
NNSOA: RETURN 

2048 IF 0D)O0 THEN G0 TO VAL "2047" 

2050 RETURN 

2051 NEXT N 

2052 GO TO VAL *2000" 

2058 O1M of(oa,oa): 60 TO Fr 

2060 60 TO FH 


| 2061 CLS + GO SUB VAL "2586": 60 SUB VAL "2572"s CLS 
| 2063 CLS $ PRINT AT OH,O1;“Please Select’’’TAB QD; "<1) TS 20 


4Q Printer?"''TAB 003"<2) Centronics Printer*: 60 SUB SQ: G0 
SUB IL? IF 240A OR 2>08 THEN GO TQ VAL "2063": LET PR=2-OA: 
IF PReOO THEN LET /P=7; LET 1x=VAL ‘32%: LET qqg=og: LET fd= 
oot GO TO FA 

2065 CLS : PRINT AT O1,0F}"Qoes printer need a*'TAB OF}"line 
feed?:"''TAB OF}*<y) yes or <n) no": 60 SUB S@: G0 SUB IK 
3 LET FD=2 

2066 CLS : PRINT AT G1,00;"Turn Printer ON, and:* 

2067 INPUT "Input MAX Line Length?"$LX: IF FO=GA THEN LET /P 


| =O: PAUSE OL! POKE VAL "22323",LX: IF fdsoa THEN POKE VAL "2 


3324" 0) 

2068 IF fd=ob THEN POKE VAL "23924", 00 

2070 CLS $ INK 6: PRINT AT 3,63 "FUNCTION MENU"’'TAB G3"<1> H 
ail List Menu"’TAB 6% INK 53"<2) Caption"’TAB 6} INK 6}"<3) 

Format"''TAB 6}"<4> Page Managenent"'TAB 6} INK 5}"<5) Line 

Space’'TAB 6} INK 6}"<6) Page End"''TAB 6}"<7) Letterhead"’T 
AB 63 INK 53°<8) Sign OFf"''TAB 6} INK 63"<"} FLASH 13"9"5 F 
LASH 0}") Set up Outline*’TAB 63 INK 53"<0) Print Quéline?’’ 
TAB 6}"Page="}pgi TAB 16)*Line="inn 

2071 INK oet LET ggzoat PRINT AT ot,okipgi" "SAT ot VAL "21" 


| gong" ": G0 SUB sqi G0 SUB il: IF z<oo OR z>oi THEN G0 TO fa 


2072 IF 2=0F THEN GO SUB PE: GO TO FM 

2073 IF zoe THEN G0 SUB 10 TO fa 

2074 GO TO (z=00)4VAL "3324"+(z=0a)$VAL "2000"+(z20b)AVAL "2 
O94" +(zz0c)EVAL "20B3"+(z=0d)XVAL "3004"+(z=0g)4VAL "3370"+( 
zeoh)EVAL "3384"+(z20i)#VAL "3300" 

2083 CLS: PRINT AT 5, 11;"FORMAT MENU"''TAB 63"<1) Single Sp 
ace"’'TAB 63"<2) Double Space"’'TAB 63"<3) Line Length Chang 
e"''TAR 63°44) Page Center Change"''TAB 63"<"$ FLASH 13"5" 
FLASH 03") To Function Menu” 

2084 G0 SUB sqi 60 SUB il: IF z=od THEN CLS : INPUT “Input P 
age Center*$qqi GO TO VAL "2083" 

2086 IF zeoc THEN CLS: PRINT AT QJ,0As*key in lgthi "2 INPU 
TLL: LET /pso: PAUSE OL: POKE VAL "23324", (OJ AND fd=oa)+(o 


|| 9 AND fd=ob); PAUSE OL: POKE VAL "23323",LK 


2087 IF z=0e THEN GO TO fa 

2088 IF z(oc AND zoo THEN LET sd=z 

2092 G0 TO VAL "2083" 

2094 CLS : PRINT AT OJ,003"Type the Cap"''TAB od} "Line igth 
Limit ist "§LX: INPUT $ 

2035 LPRINT TAB QQ-LEN w$/OB}m3; LET NN@NN#QA: GO SUB bu: Ov 
T po, 24 

2096 G0 TO FH 

210 LET IN=OA 

2112 CL§ : PRINT "Enter Field Nbr to Correct, or "et" 
or next field."''"M] No. "$0''"Fields’'"1. "308(0,0A)'"2. *y 


THEN RETURN om 


Combining the above techniques reduced the aesory 
length of S00$ Mail Merge from around 21K to 9K total 
program length. These facts are given both to help you 
understand the cryptic programing and to whet appetites for 
a later article about Boolean Prograrming. When studying 
the programming, "think pseudo hex" to understand the "o 
vars’. Look at lines 2586 through 2590 for the variable 
tables, It will help to wake a index card for reference to 
the variables. Later ve will DELETE these lines and the 
vars will no longer be visable. While in that area, EDIT 
line 2590 and change the LETS for “N$()" to you own 
letterhead and sign off data 


The LLIST Instructions 


Key in the LLIST as given. This is a long and 
laborious task and nothing can be learned in the process 
that cannot be learned by studying the listing. If is 
likely that quite a nuaber of key in errors will result 
vhich will have to be de-bugged. Why not save yourself the 
labor and order the "S00S Issue Diskette” which is offered 
in the yellow pages of this issue. The diskette also 
contains the other utilities and program presented in this 
issue, At $16.95 it is quite a bargain. But whether you do 
or not, please follow through the logic of the following. 

The progras operates by <€0 TO 2061). The LLIST 
contains 5 programmed menus which will be SAVED as SCREENS 
files to diskette. Then the line numbers for the menus vill 
be deleted and then each aenu line will be re-created with a 
single <LOAD ‘nare” SCREENS) consand. The Variable files of 
Lines 2586 through 2590 vill be initialized, then the Vars 
vill be SAVED to disk and those line nunbers deleted. If 
you have conpleted the Key In project, Type G0 TO 2061) and 
follow the prompts until the FUNCTION MENU appears. If you 
tannot get that far, then you ust re-check for key in 
errors in lines 2061, 2572, 2575, 2578,2579, 2578, 2579, 
2586, 2588, 2590 and 2596. Continue by the following steps 

1. Operate the program and exercise all eenu functions. 
Create a mailing list, checking the menu selections of the 
Mailing list menu. Print the Mailing List in it's various 
offered aodes. Test the "Print Labels” node. Use a spare 
diskette to test the SAVE and LOAD functions. 

2, Check all selections of the Function Menu. Create a 
‘Qutline Data Base’ of at least 2 Major Topics and 2 Sub 
topics of each. Then PRINT the Qutline. Print a Caption, a 
Letterhead, a Sign Off, and test the page fanagenent 
functions. 

3. If any of the above fail, a report code will appear 
at the botton of screen. You must then check the Line 
nunber reported, edit the line and correct the key in error. 

4, Ve will now assume that $O0S MAIL MERGE is operating 
correctly in all aodes. Now use a spare diskette and <SAVE 
JPwmrg"LINE 2097) ENTER. This is a temporary save, using & 
different title and is for SAFETY in case you lose the 
program for sone reason 

5. «CLEAR? the coaputer and type (40 10 2061) ENTER. 
Respond to prompts until the Function Kenu appears. <BREAK? 
and type <PRINT FREED ENTER. Make a note of the figure 


Progra Listing (cont.? 
2120 CLS $ PRINT AT oj ,oo}0$(o,im)$AT ou,oos*npt *§(*Co Name 
* AND in=QA)+("Dept "AND in=OB)+("St adr * AND in=QC)+ 
(tet St.2p" AND in=0D)+(" 1st Name" AND in=OE)+("Tel Nor * AN 
O in=OF): INPUT TS 
2122 LET o$(o,ind=4$ CLS: 60 TO VAL *2112* 
2550 PAUSE VAL "de4"! LET z=CODE INKEYS-48: IF z(oo OR z)oi 
THEN G0 10 ils REM 3 For Key 0 to 9 
2553 RETURN 
2554 IF PEEK VAL *23611"CVAL *22i" THEN GO 10 IK: REM % For 
Yes or No. 
2555 LET Z=PEEK VAL "23560": POKE VAL "29611", VAL "220": IF 
2OVAL *78" AND Z4>VAL "89" AND ZQ)VAL "110" AND 2Q>VAL val 
* THEN 60 10 Ik 
2558 LET 2=(0A AND Z=VAL "89")+(OA AND Z=VAL "1217)+(0B AND 
2=VAL "784)4(0B AND Z=VAL "110") 
2560 RETURN 
2867 IF IN 127253 THEN GO TO BU 
2568 RETURN 
2870 CLS : PRINT AT oj,ods*INPUT FILE NUMBER": INPUT t82 LET 
US="MURG'HtS! SAVE /t$ LINE 20613 BEEP oa,oa: CLS : &0 10 F 


4 

2872 CLS: PRINT AT 4,4} INK S"¥4x "} INK 6)°S00S MATL NERG 
es INK 5)" $2K"7'TAB OP*MAIL LIST"S INK 33" LABELS “} INK 4 
jTENVELOPES"! "TAB 63 INK G*INVENTORY "3 INK 2}"Outlines*'' 
TAB 13} INK As*WITH? "TAB 33 INK 4j"SAFE"S INK 63" O1SK") IN 
K-53! OPERATING "} INK 2;"SYSTEM*''TAB 11} INK 3 1984 by” 
"TAB 3}"T$-2068 SAFE DISK UP-DATE*'TAB 63 "1317 Stratford Ave 
TAB S;*Panana City, FL 32404"' TAB 7}"rights reserved" 

2575 FOR N=0A TO oft GO SUB SQ: PAUSE VAL “100"s NEXT Ni RET 
URN 

2876 INK xat PLOT 00,00! ORAW oo, VAL "175": ORAW VAL *255",0 
ot DRAW o0,VAL "=175%s DRAW VAL '-255",oo: LET xaexatoa: IF 
xadof THEN LET xasoa 

2578 INK xat BORDER xatoat PLOT oh,oh: DRAW 00, VAL "159°: OR 
AV VAL "239",00! ORAW oo, VAL "159% ORAY VAL *-299",00% LET 
yazxatoat BEEP oa/0j,VAL "40": IF xadof THEN LET xarob 
2879 INK of: RETURN 

2880 BEEP .1,40: PAUSE VAL "20": RETURN 

2582 BEEP OB/OJ,O0: BEEP 08/0J,0H: BEEP 0B/0J,0N+ BEEP 08/0) 
1003 RETURN 

2586 LET po=t272 LET oo=0: LET oa=ls LET obe2: LET oc=3i LET 
coded! LET og: LET of=6: LET og27i LET oh=@i LET of=9) LET 
ojel0s LET ok=1ii LET ol#12: LET om=l3t LET on=14: LET op=l 
St LET og=l6: LET or#l7: LET os=18: LET ot=19: LET ou=20 
2588 LET tweoot LET xa#2t LET sq=25785 LET In=543 LET nn=0s 
LET pgels LET prait LET bus2667: LET zee: LET sq=2576: LET 
fa=2070: LET sd=1: LET sp=2990: LET 1h=2610: LET pes3014: LE 
T ik=25543 LET il-2550: LET 1-643 LET Ix=@0: LET qq=40: LET 
tb=8: LET fd2 

2590 DIM n$(og.3L}i LET n$(oa)="TS-2068 Safe Disk Up-Date": 
LET n$(ob)="1317 Stratford Ave.": LET n§(oc)="Panana City, F 
L 32404": LET nf(oe)="Bill Jones*s LET ns(of)="904 @71 4513" 
: LET n$(og)=*Sincerely," 

2596 RETURN 

2600 CLS $ PRINT AT oj ,0f3"SAVE Menu*’'TAB 45*<1) Save this 
Mail File’! 'TAB odi"<2) Save Progran + File”: 60 SUB sq: G0 
SUB ilt G0 TO (zXoa OR zdob)¥VAL *2600°#(z=0b) AVAL *2570"+(z 
Foa)svAL *2602" 


Ze 


vin 


Con 7 


presented, Next, Install a freshly formatted diskette and 
type: <SAVE /"arg* VAL) ENTER. This saves the variable file 
to diskette. We will call this your "program diskette” and 
it will be used for all SAVES from now on. Next, DELETE 
lines 2586, 2588, and 2590. 

§. The Function Nenu should still be still on screen, 
If not, type: <60 70 fm) ENTER. BREAK and type: (SAVE /"fa" 
SCREENS) ENTER. The disk should run and the Function Menu 
will be saved to diskette. To make sure, type (LOAD /’fa” 
SCREENS The Function menu should boot in fron disk. If 
not, repeat the procedure of iten 6. Next, ENTER a NEW LINE 


2070: {2070 LOAD /*fe" SCREENS). Enter the line, which will 
replace the existing line 2070. Type <60 10 fa? ENTER. 
The Function wenu should boot in fron diskette. 

7. Type <LIST 2089 ENTER). BREAK and type (G0 10 2083 
ENTER). The Format Menu should appear, BREAK and type: 
(SAVE /*fo SCREENS ENTER. Then type <CLS) and (LOAD /*fo” 
SCREENS). The Format menu should boot in frou diskette. If 
O.K. then type a new Line 2083: <2083 LOAD /*fo" SCREENS) 
Enter the line. Then type <G0 TO 2083 ENTER>, Again, the 
format menu should boot in froa disk. 

8. BREAK and LIST line 2572. Then add Line 2574: <2574 


STOP>. Type <60 TO 2572 ENTER?. The title screen should 
appear. Type <SAVE /"epr” SCREENS ENTER>. Type <CLS? 
ENTER. Type <LOAD /"cpr* SCREENS. The title screen should 


boot in. Type an new line 2572: <2572 LOAD /"cpr” SCREENS. 
Type <CLS) <G0 TO 2572 ENTER>. The title screen should boot 
in from disk, Now DELETE line 2574 which has the STOP. 

9. Type <LIST 2000 ENTER. BREAK and type (G0 10 2000 
ENTER). The Hail List menu should be on screen. BREAK and 
type <SAVE /*wl' SCREENS ENTERD. Type <CLS> <LOAD /*ml" 
SCREENS ENTER). The Mail list menu should boot in. Type a 
new line 2000: <2000 LOAD /"m1" SCREENS). 

10. Type: LIST 3004 ENTERD. BREAK and type: <60 TO 
3004 ENTER). The Page Management Menu should appear. BREAK 
and typet <SAVE /*pgt SCREENS). Type <CLS> <LOAD /*pg’ 
SCREEN$ ENTER). The wenu should boot in from disk. Type a 
new line 3004; <3004 LOAD /*pg* SCREENS ENTER>. Type <CLS) 
{80 T0 3004 ENTER). The screen should boot in. 

11. BREAK and type: <SAVE /*SD0S MMRG"LINE 2061 ENTER? 
This SAVES the main program to disk. 

12. Type: <CAT ENTER). The disk directory should show 
the prograns: <arg VBLS) (fm BYTES) <fo BYTES) <cpr BYTES? 
pg BYTES) <SDOS MMRG>. How ve will install the file zero 
auto load line. NEW the computer. Then type this one line 
program: <10 BORDER 0: PAPER O: INK 6: CLS: LOAD /*S00S 
AMR") ENTER. Next type a direct command: SAVE /0 ENTER. 
Next, type: <LOAO ENTER). The wain program should AUTO LOAD 
and operate. 

13. BREAK and type: <PRINT FREE ENTER). Compare this 
FREE report to the earlier FREE report and you will see the 
savings of aenory resulting from the use of disk for major 
parts of the program. © You say go ahead and operate the 
software now and benefit from the extra FREE meaory to use 
for data storage. 

The concepts of "Disk Dependant’ software should now be 
clear The disk drive, esployed vith ingenuity, can 


Program Listing (cont) 


2602 CLS: INPUT "Input Mail File Nors*st$s LET t$="m"+ts: S$ 
AVE /4$ DATA 06()3 60 TO fa 

2604 IF 2906 THEN CLS : PRINT AT QJ,QH}"(NPUT FILE NBR": INP 
UT $$: LET t$="n-"+t$s SAVE /t$ DATA o$(): GO TO VAL "2000" 
2990 LPRINT + LET NN@NN#OA: IF NND=LN THEN G0 SUB PE 

2994 IF sd=ob THEN LPRINT : LET NN@NN#OA: IF NND=LN THEN 60 
SUB PE 

2396 RETURN 

3004 CLS : PRINT AT 3,5) INK 6}"PAGE MANAGEMENT"''TAB 53 INK 
S3"Next Page is "ipg'’TAB 5j"Lines to Page End="jin-nn’ ‘TAB 
[1e"Select’’'TAB 53°41) Page End"''TAB 53"<2) Adjust Line N 
uuber"''TAB 53*(3) Re-number Page"''TAB 53"<4) To Function # 
enw” 

3005 PRINT AT o@,ostpgi* "AT og, VAL "23%; In-nng" ": G0 SUB 
sq: G0 SUB il: IF zXoa OR zrod THEN GO TO VAL "3004" 

3006 IF 2=00 THEN G0 TO FM 

3008 IF 2=08 THEN INPUT "Ent new lines to end 
LN-NL: 60 TO VAL "2004" 

3010 IF z=oa THEN G0 SUB pe: GO TO fe 

3012 IF Z=0C THEN INPUT "Enter next pg No. "}PG: G0 TO VAL * 

2004" 

3013 G0 TO VAL "3004" 

9014 IF PReOO THEN LPRINT ''''spghtrrerrer tree's LET NNe 
OA: LET PG=PG+0A: RETURN 

3016 IF NNCVAL "S9* THEN LPRINT : LET NN=NN#OA: IF NNCVAL "S 


“GNLE LET AN® 


| 9° THEN GO TO VAL "2016" 


3018 LPRINT TAB QQsPG: QUT PO,OL: LET PG=PG+0A: LET NN=OA: R 
ETURN 

3020 CLS : PRINT AT oj,obs"Install Data Diskette,"'TAB obj"T 
ouch ENTER": PAUSE VAL "ded": CAT : INPUT “Enter TITLE ONLY 
of C ARRY "yt PRINT ''t$: LOAD /t# DATA o$(: 60 TO V 
AL "2000" 

3300 CLS : PRINT AT oj,obs"Qutline Fill": INPUT "Enter Nor’ o 
f Major Topics:"jaj: INPUT “Enter Nbr of Sub Topics of each: 
"hsb: INPUT “Enter Coluan width:"jlgts DIM k§(aj,igt): 01% v 
$(mj,sb,1gt) 

3304 LET aoa: FOR n=oa TO aj 

3305 IF ndmj THEN 60 TO VAL "3320" 

3306 PRINT AT on,oos"Ent Major Line "i [NK eins INK ofs* 0 
tezz to quit®s INPUT k8(n)s IF k$(n)( TO ob)="zz" THEN LET k 
$inde"" GO TO VAL "3320" 

3308 FOR yzoa 10 sb: PRINT AT on,od}*Minor*$AT on,og} INK od 
sy} INK oft IF y>sb THEN GO TO VAL "3316" 

3310 INPUT v$(n,y)s IF v§(n,y)( TO ob)="zz" THEN LET v$(n,y) 
=) 60 TO 3316 

3312 NEXT y 

3316 NEXT 0 

9920 LET nemji LET y=sbi CLS i PRINT AT oj,abs"Print the Gut 
line now?"''TAB ob3"<y) Yes or <n) No": G0 SUB ik: IF z=ob T 
HEN LET n=aj: G0 TO fa 

3324 CLS : INPUT "Input Tab for line prints "jtz 

3930 FOR n=oa 10 mjt IF k$(n)(¢ TO ob)=" * THEN GO TO VAL "3 
354" 

3934 LPRINT TAB tzjk$(n)'': LET nnanntobi IF nnd=in THEN 60 
SUB pe 

9338 FOR yzoa 10 sbi IF v$(n,y)( TO obd=* 
"3346" 


" THEN GO TO VAL 


Z God- Z- 


aitigate the basic deficiency of the 19-2068, nanely 
"insufficient FREE menory’ to use for programming. As the 
Oliger EPROM developments continue, Safe Disk Up-Date will 
explore each new capability in detail. In the meantine, 
follow on issues will discuss subscriber questions and 
comments about this softare "SO0S Mail Merge’. Feel free to 
write. A quick letter response will be sent and the 
questions comments will appear in the next issue. 


Prograa Listing (cont.) 


9342 LPRINT TAB tztoesv8(n,y)''s LET nn=nntob: IF nnd=ln THE 
N GO SUB pe 

9346 HEXT y 

3350 NEXT 

3358 CLS: PRINT AT oj,ob}"Delete the Data?”''TAB obj"<y) Ye 
sor <n} No"; 60 SUB iks IF z*oa THEN DIM k$(oa,oa)s DIM vs¢ 
04,0a) 

3360 60 TO fa 

3370 FOR n=1 TO oct LET e$=n$(n)i GO SUB VAL "3380": NEXT ni 
LET a$=n$(of): G0 SUB VAL "3380": 60 TO fa 

3380 IF mS(LEN a$)=" * THEN LET m$=a$( TO LEN m$-0a): GO 10 
VAL "2380" 


3382 LPRINT TAB qq-LEN a$/ob}m$: LET nn=nntoat RETURN 

3384 LPRINT '''s LET m$=n$(og): G0 SUB VAL "3380": LPRINT '’ 
*) LET e$=n$(oe): GO SUB VAL 3980": LET nn=nntohi G0 SUB pe 
: 60 TO fa ae Exh 1~ 


North American F-86 


Printer Control Programming 


(LET Peo) takes care of "sending LPRINT character streams’ to a Centronics printer, The other half is sending 
"Printer Control Codes" to command the printer to do such things as change type fonts, set italic, and set underline 
nodes, Most printers have a group of dip switches to manually set these functions, but ususally the dip switch panel is 
located in a difficult to reach area, What is needed is ‘software control’. Lets explore how to build a software 
“printer control group’. First, a MENU is needed. The menu would look something like the following: 

1. Pica Style 2. Elite Style. 9. Condensed Style. 4. Italic Font. 5. Underline. 

Vhen the menu is presented, a touch of key 1-5 should set a variable to the value of the key touched. See the INKEYS 
prompt routine in this issue. Ve will let the variable ‘ps" be our switch. After the menu and the INKEY$ prompt, this 
program line will do itt <900 LET ps=z). For example} if Key 1 is touched, Pica style is selected and “ps=i". Before 
continuing, you should make sure that the printer actually responds to a LPRINT command. Type <LPRINT "12345" ENTER’. If 
12345 is printed to paper you may proceed. If not, then you must set up the printer correctly before proceeding. 

Now, assuming that a menu has been constructed, we will build a printer control group. LINE 900: <900 LET ps=zt 60 

Td 1000) 
Line 1000 should contain the programming needed to CANCELL all special printer set-ups to make ready for commands to 
establish the print styles selected at menu. Sone printers have a single comnand code to do this, BUT aany printers will 
also RESET TOP OF FORM when the RESET command is used. That would disturb a page format after a print style change has 
been directed. Line 1000 should contain groups of CANCEL commands for every conceivable printer set-up, WITHOUT resetting 
TOP of FORM. Then you'll be ready to set the print style selected at menu. 

Before going to the next lines, we will discuss how control codes are sent to a printer. Lets use a typical control 
code group as would be given ina printer manual. (27,100) (80,102). To send such a group, this programming would be 
needed?  <line 80 SUB BU! QUT 127,27: 60 SUB GU: QUT 127,100: G0 SUB BU: QUT 127,80; GO SUB BU: QUT 127,102 > 
Explanation: (QUT 127) sends the control code to the printer, BUT- the printer must be READY to receive a control code. 
4&0 §UB BU) is a line to assure PRINTER READY). Ve vill now construct "line BU as line 2000. <2000 IF IN 1274253 THEN 
40 TQ BUD (2002 RETURN). 

To explain the above: When a printer is READY to receive a control code, {IN 127) produces character code 237. If 
NOT READY, <IN 127) produces the character code 253, So, line BU (2000) vill loop itself until the printer is READY. 
Now, using the examples given, line 1000 can be constructed: <1000 G0 SUB but QUT 127,27: 60 SUB bu: QUT 127------ 
continue all control codes needed to CANCEL ALL printer set-ups---). Refer to your printer manual for the correct control 
codes. 
Next, (IF THEN programming is needed to set the print styles selected at menu. Typically, these would bet 
<1002 IF ps=l THEN G0 SUB BU: QUT 127,------ the printer control codes needed to set pica style. Use G0 Sue By 


between each.) 
41004 IF ps2 THEN G0 SUB BU: QUT 127,----- the command codes needed to set ELITE style. 


QUT 127 command.?. 

Continue building program lines as above for commanding the printer to set the other menu selections. When finished, 
the last line should be (line 60 TO the line of your major menu). Try out the "print style menu” and the program lines 
that have been constructed. Chances are that the print style changes selected at menu WILL be made at the printer, BUT, 
extraneous line feeds will occur. If so, check the printer manual to find the "Cancel Buffer” control code. Usually this 
is character code 24, but some printers use an extra command code, To eliainate extraneaus line feeds, the Cancel Buffer 
code is inserted after each group of control codes for a special function. Dont forget to use <G0 SUB BU) between each 


OUT 127 conmand. 


Use G0 SUB BU betveen each 


6 


TS: 2068 Computing 
> with $.D.0.8. 
By John Oliger 


SAFE QUESTIONS AND ANSWERS 


This column will answer questions of general interest about the Oliger 2068 
Disk I/F and JLO SAFE DOS. If you have questions you feel other users of this 
system would like to see answered, send them to me at: 11601 Whidbey Dr. 

Cumberland, IN 46229. Because my schedule can at times be simply too demanding 
to always find the time, I cannot promise to ALWAYS have this column ready for 
each new issue of Safe Disk Up-date. I will only do the best I can.,._ 


-Ys-7 Otge 
What is the latest version of SAFE and what new features does it provide? 


The current version of SAFE as of today (8/16/87) is V2.34. The last change to 
SAFE (V2.33 to V¥2.34) corrected a minor bug in the FOR /n TO m command, The 
change from V2.32 to V2.33 also corrected a minor bug. The features it added to 
SAFE (from V2.2) were: 1)A fast new FOR/NEXT loop structure. 2)The ability to 
save a SCREEN$ via the NNI pushbutton along with all the previous functions by 
use of this pushbutton. 


What does the different numbers represent when referring to SAFE's version? 


The first number (the "2" in V2.34) says that this is the second major version 
of SAFE, SAFE V1 only supported a total STATE SAVE like V2's SAVE /"filename" 
ABS, The second number (the "3" in V2.34) is updated every time a new fuction, 
command, or group of functions and commands are added to SAFE. When the RESTORE 
/"filename" TO "newfname" command was added, SAFE's version number went from 
y2,01 to ¥2.10. The last number in SAFE's version is incremented any time the 
code in SAFE has been changed or modified, but no new commands or functions were 
added, This might be done to fix a bug or to make a portion of the code more 
efficient. An example of this would be when the FOR /n TO m routine was changed 
to fix a bug, which changed the version of SAFE from V2.32 to V2.33, and another 
to make it V2.34. 


SAFE gives me occasional toots when LOADing, but the programs LOAD 0.K. This 
seems to happen most often with SCREEN$ files. What does this mean? 


Anytime SAFE sounds a short toot, it is reporting to you that an error has 
occurred, it knows it, and it will try again. SAFE will try 5 times to read a 
particular cylinder on the disk, and give a short toot after each try if an 
error occurs. If after 5 trys it still cannot read a particular cylinder, SAFE 
will start the load or save over from the beginning. It will do this up to 3 
times (with 5 single cylinder tries) before it will finally just give up and 
stop with an error report "T" (Disk 1/0 Error). If you hear some toots while 
SAFE is trying to SAVE or LOAD, it is simply a report to you that SAFE IS having 
trouble. If it finishes without an error report, then it finally was 
sucessfull...but you have been told it DID have trouble so can make another 
back-up of important files, etc. Most DOSes will retry when an error occurs, 
just like SAFE does, but will not Tet you know it is having any trouble...until 
it cannot load the file at all! 


A last minute Addendum 


This page cage in late from Mr. Oliger, so i'll add it plus a report ona extensive check out of the "SDOS MAIL 
MERGE" program. I'Ll quote John's note to me and then give his article. (Quote) I wrote this little article tonight 
as info for the disk systea. I plan on putting it in the manual sone day, but for nov everyone who has the system does 
not have this information. (second note) Another unexpected bug has cropped up in some versions of SAFE ¥2.33 and all 
copies of V2-34. A BASIC program load in the 2068 node will stop with an "QUT OF MEMORY" report when plenty of FREE 
newory remains. Advise everyone having this problem (only V2.33 and ¥2.34) to return their SAFE EPROM to ne for FREE 
replacenent with ¥2.95 which is now the current version. SAFE 2-32 is O.K. and the free replacement applies only to 
2.33 and ¥2.34. (end quote) Ed note: The V2-30 and UP series of EPRONS have Snapshot NAI screen SAVE, a FAST COUNTER 
addition to BASIC, and Disk File Name Change. The next version will be V2-40 and will include the MERGE function in the 


disk language. 


CORRUFTED DISKS??? 


Occasionally you might come across a disk that has becone corrupted in its file storage pointer area (track zero) 
that will simply refuse to load any file at all. hat will usually cause this is a glitch on power up of either the 
drive or computer, with the disk installed. Occasionally a bad W01770 controller chip has also been found to cause this 
problem, ALWAYS remove your disk from your drive vhen powering up either your computer or the drive, unless the disk in 
the drive is sonething that you do not care if it is destroyed (or is one that you have a good back up for). It is best 
to simply get into the habit of doing this all of the tine, regardless of the disk that you have installed. BUT 
EVERYONE can forget sometimes so I will present a small program that MIGHT bring your disk back to life, or may kill it 
conpletely. If it's gone already, you have nothing to lose by trying it and you might be able to recover the corrupted 
disk. 


The first thing to try if you have a corrupted disk is to re-save file zero. File zero uses sectors 1-3 of track 
zero, and when SAFE loads ANY file it ALWAYS loads all ten sectors of track zero. Because the glitch could have only 
corrupted one of the first three sectors, ve have a 20% chance that simply re-saving file zero will fix the problem. 
Enter a single line program such ast 10 PRINT and save it to file zero with the command <SAVE / 0 ENTER?. Now try a CAT: 
or try $0 load a regular file. Perhaps we have fixed the disk already! If not... 


If not, then after the computer stops with its error T report, enter the command PRINT IN 175). The sector number 
that is causing the problem will be printed on the screen. Because the CATalog area starts with sector 4 and ends vith 
sector 10, and re-saving file zero into sectors 1-3 did not fix the problem, you will find that the actual bad sector 
will usually be in the range of 4-10, If the sector giving the problem is NOT sector 4, then it is VERY likely that we 
can restore the catalog area by using a little utility program. If it [9 sector 4, you can still try it and it may 
work, The utility program is given below. Key it in and do a CAT (even though it stops vith a error), then RUN the 
progras. 


10 RESTORE 30: FOR N=92000 TO 32006: READ A: POKE N,A: NEXT N 
20 RAND USR 32000 
30 DATA 205, 10,0, 205,142, 10, 229 


This little program re-saves the CATalog back onto the disk, If the error was actually in a later portion of the 
catalog area that was not being used (the CAT area can hold 177 file, and will not be full unless you have thai sany 
files on disk!), then the data re-saved will be correct and the disk will be completely recovered. You will find that 
over 90% of the time this program will restore access to your disk. To those interested in what this program does at 
the WC level, I provide the following annoted assembly listing. It is a very simple little routine. 


CALL OO0A turn on Qliger Disk B bank 

CALL OABE jsave the contents of the B bank buffer to track 0. Data will be 
Sput there by using CAT before runing this program 

RST 18H  }turn off B bank, turn on interrupts & return to basic 


John L. Gliger 9/87 


More About SDOS MAIL MERGE 
A thorough Check Out 


Next issue two more functions will be added to SDOS MAIL MERGE. One will 
quickly let you flip through the listing to find a name or stock list. 
Presented will be the "Field Wumber and first line of the field”. These lines 
will scroll until you find the one you are looking for, then the menu can be 
used to do something with that particular field of information, The second 
function will be to INPUT a KNOWN LAST NAME or "NOUN" of a stock list. Then the 
field having that noun will be found and the seven line field will be presented 
on screen. If more than one field contains such a noun, you may continue until 
each field is presented. 


Also, next issue we will use "TINECHINE" to assemble the three search 
routines to make them ligntening FAST. By the way, after printing the LLIST of 
Mail Merge, I began to use the software extensively to produce mailing lists for 
mail out of invitations to subscribe to SDU. About 600 TS-2068 users were 
entered into six individual lists of 96 each, "96" was selected because that is 
@ multiple of 24, and my Smart Text software uses mailing lists of 24 fields. 
Thats another story that we will take up in the next issue~ how ta split a large 
character array into several shorter arrays that can be used in other printing 
softwares. 


BLEEPS and GLITCHES: Yep, I found a couple! Hey, there aint nobody thats 
are perfect! The following line numbers should REPLACE those given in the 


LLIST. 
2005>1F z=oa THEN DIM o$(mx,7,31): DIM O$(mx,7, 31): LET IN=OA: LET ms=O0A 
: CLS + GO TO VAL "2009" 


2061>PAPER 0:: CLS : GO SUB VAL "2586": GO SUB VAL "2572": CLS 


2068 IF fd=ob THEY LET /p=o: POKE VAL "23324",00: POKE 23323, 1x 


I also found some subscript problems when SORTING BY LAST NAME, "when there 
are not TWO nouns in the name”. A few line changes as follows cleaned up this 
little problem. Enter the following program Iines. Some replace existing 


lines. 
685>IF LEN b$=00 THEN GO TO VAL "689" 


686 IF LEN b$>o00 AND bSC(LEN b$)=" " THEN LET b$S=b$( TO LEN 
b$-0a): GO TO VAL "685" 
687 IF LEN b$>oa AND b$‘oa)=" " THEN LET b$=b$Cob TO ): GO 
TO VAL "685" 
689 LET o$(n,0a)=b$+" "+o$(n,o0a)¢ TO-1) 
690 NEXT n 
692 RETURN 
The "SDU ISSUE DISKETTE” will contain all of the above line number 
corrections, plus the two new added functions. See you next issue. 


TECHNICAL SECTION 


Oliger Schematics 


Timex Tech Data 


Special Projects 


URATION 


Ts 2068 STANDARD MEMORY CONFIG! 


40K 
up TO 64K 


Full 64K addressing space 
not normally utilized 
Soe Section $.1 


ae aime amaorie Saintes 
(BANK #255) (BANK #254) (0OCK) 
pect 
(BANK #9) 
HOME BANK RAM 
a eau 
Healy sess = | SESTET] eicon 
MAGHHE STACK @F7Ccon 
SRAM TOP 
STKENO soy 
mune a 
PROG PROG 
Ra rae 
ARSBUF ARSOUF 
(MACHINE COOE, VARIAGLES) TOOK 


Gea0H | _(MACHINE CODE VARIABLES! 
05 RAM-RESDENT COOE 


6200H 
DISPLAY F 
6090H MACHING STACK Aree 6700 
ScooH ‘SYSTEM VARIAGLES SYSTEM VARIABLES scoeH 
sB00H PRINTER BUFFER PANTER BUFFER sB00H 
DISPLAY FLE 1 DISPLAY FILE 1 
40ceH 4900H 
HOME ROM HOME ROM 


a 
8) 2 Display File 


ee 
: A) 1 Display Fie 


Catalo 
e Section 


PERMANENT , PLUS 
SUPPLYERS ° USER FREE 


zie? AD’S 
\N 
; 
gottwar® rade 4 ¢* 
i aware g** 
nv r go" 
Cc 
Livest© part 


shbat! 


A experinental ausical composition by a tin eared 


ALLEGRO: 
Velshean. There are three (GO SUB routines). <60 SUB 100) 
produces a indefinite nusical chord which is interrupted by 
touching any key. G0 SUB 102) gets a 10 second ausical 
pause. G0 SUB 122) brings prompts to adjust the chord 
dvell and tine duration of a ausical interlude. Line 
numbers 116 and 118 are data lines that contain the absolute 
frequencies of the musical scale. These notes are played in 
groups of three. Arrangement of a nelody involves the 
sequencing of scales in the two data statements, using audio 
frequencies of the notes. Insertion of BEEPS in line 104 
can oroduce other effects. 
ALLEGRO 


— 100 RESTORE VAL "116": LET xxeVal "eds GO 10 VAL "104 
102 RESTORE VAL "116": LET xx=VAL "600" 60 10 VAL *104" 
104 60 $UB VAL "108": SOUND VAL "7",VAL "56"; SOUND VAL "0" 
yalpVAL "1", a2s¥AL "8" VAL "12" PAUSE VAL "20": €0 SUB VAL 
198%) SOUND VAL "2*,aljVAL *3",a2}VAL "98 VAL "13"! PAUSE V 
AL "20" GO SUB VAL "106": SOUND VAL rae aljval *S*,a2Va * 
10",VAL "12": PAUSE xxi SOUND VAL *O',VAL “O"SVAL “L* AVAL “0 
“VAL "2',VAL "OVAL "9", VAL "O'SVAL "AT VAL TOTIVAL *5",VA 
RETURN 

106 RETURN 

108 READ ts IF f-VaL "10" THEN RESTORE VAL "116%: READ f 
{10 LET x7=VAL TL. 75"/(#8VAL "10")2 LET x7=x74VAL “Le6" 

112 LET a2=INT (x7/VAL "256°)3 LET al=1NT XTHINT (x7/VAL "2 
S6") EVAL "256" 

114 RETURN 

116 DATA VAL "890", VAL *932.32" VAL "987.76", 932.32, VAL "98 
7,76" VAL "830.608", VAL "58.27" VAL "65,406", VAL *130.812",¥ 
AL "440", ¥AL 880", VAL "1760", VAL #92, 498", VAL 69.296", VAL 
¥198,592", VAL "97.990", VAL "110" VAL *430.812" VAL "146.632 
* VAL "82.406" VAL "87.08", VAL 997,998", VAL "146.832", VAL * 
155.564", VAL *164.812",VAL "195.996", VAL 103.926" VAL "138. 
592" VAL *1396.926", VAL "1567.968" VAL "1318.496", VAL "2092. 
992", VAL "2217.472",VAL *2349.312", VAL "1174,656" VAL "1318 
4968, VAL "1396.928", VAL 7493.88", VAL 523, 240", VAL "587.328" 
WAL 233.08" VAL "246,94" VAL "61.624" VAL ‘10° 

[18 OATA VAL *3136.936",VAL *297.886", VAL #9520" VAL "698.4 
54", VAL "769. 924",VAL °659.248", VAL "558, VAL "87.308", VAL "7 
3.416%, VAL "174.816", VAL #194.995" WAL "207.652", VAL "349.23 
Dr VAL "391.992" ,¥AL "329.642", VAL "yo" VAL "10" 

120 LET xxeVAl *4ed"2 60 SUB VAL "404": 60 TO VAL "120" 


+ 


u 


ET xxeat30t INPUT "Interlude in Minutes? "sb: LET yxsxxtbt 
OR n=¥AL "1" TO yxt GO SUB VAL "104": NEXT 0 
am nd Z- - 


_-m 122 RESTORE VAL '118": INPUT "Hote Length (seconds)? "gat L 
Lb 
2 


The New England Moose 
and 


His White Face Harem 


Everybody needs somebody. 


A PRINT USING ROUTINE and OEHONSTRATION 

This interesting batch of string slicing and 
concantations does a nice job of aligning decimal places and 
simulating the print using functions. There are shorter 
vays of doing it bub this one is included for a study of its 
tricks. TYPE RUN. 


$0 CLS : DIM a$(10,10)s FOR n=l TO 10 
30 LET af(n)=STRS (LOQO000RNOFRHOSRNORRND): IF VAL a$(n)< 
0000001 THEN GO TO 30 
50 IF RNO<.S THEN LET a$(n)=a$(n, 10 5)+* 
G0 IF a8(n,S)="." THEN LET a$(n,6)=STRS CL#(981NT RKO} 
70 PRINT n,a8(n)i NEXT ni PRINT ,,"The numbers vill now be 
placed in the first column and rounded to two decimal plac 
es. TOUCH ENTER® 
100 INPUT x$t PRINT AT 0,03"")s FOR nei 70 10; 60 SUB 240: 
NEXT nt PRINT '*The nuabers in left coluen will be placed in 
right coluan and trailing zeros and connas added. TOUCH EN 
TER": INPUT x$ PRINT AT 0,05 
180 FOR n=L TO 10: GO SUB 290: NEXT nt PRINT AT 21,3)"Touch 
ENTER to REPEAT’ 
220 If INKEYS="* THEN &0 TO 220 
230 RUN 
2k0 LET aeVAL agin LET a=INT (100%a+.05)/1002 LET as(nes 
TRS at PRINT a8(n)s RETURN 
290 FOR is10 10 1 STEP -1i IF at(n,id<>* * THEN 60 TO 320 
310 NEXT 1 
320 LET cfeag(n,t TO ids IF c$(LEN c$-2)=".* THEN GO 10 380 
350 IF cS(LEN c$-L)=".* THEN G0 TO 370 
360 LET cf=c$4".0" 
370 LET c$=c$#"0" 
380 LET a$(n)= 
990 IF LEN c$>6 THEN LET cS=c$(1 10 LEN $6) 4", HcS(LEN C$ 
-§ 10) 
400 LET a$(n,11-LEN c$ TO 10)=¢83 PRINT AT ned, i5;asin) 
420 RETURN 


HELP! 


Safe Disk Up-Oate needs both Utilities, Programming 
Tips, and Major Softvare Progeass. The aaterial in this 
issue cane froa the Editor's own treasure trove, The botton 
of that basket will soon be uncovered, PLEASE HELP by 
sharing your useful progranaing. See the editorial about 
sharing the proceeds of *S0U ISSUE DISKETTE SALES". We all 


need particiption by all. 


Advertisement 


cae KK SDU Quarterly Diskettes ** 


The programs and utilities that are presented in each 
quarterly issue of TS-2068 Safe Disk Up-date are assembled in 
one Diskette and offered at a price of $16.00 (post paid?. 
Generally the text of the articles in SDU will be sufficient 
documentation, When needed, additional documentation will be 
furnished. Letter questions about the programs on SDU Diskettes 
will be published the following issue. Call for quick answers. 

: SDU Diskettes are available in 5 1/4 inch diskettes, any 
FORMAT. For other size drives, a cassette is provided. Please 
use the order form and check off your disk format or cassette. 


SOU Diskette, October 67 issue contains the following: 

1. $00S MAIL MERGE. Create, Store, and Print Mailing Lists, Inventories, Telephone Lists. Auto 
Print listings. Auto Print Mailing Labels. 

2. UTILITY SEXTET- Hex/Oecimal, BINARY, MINED KATH, ASSEMBLER, DISASSEMBLER. 

3. PSEUDO HEX VARIABLE TABLE. Use with all BASIC Prograas to conserve program aenory and 
standardize use variables. <LOAD /*ph"VAR > in a prograa line werges the vars to any BASIC progran. 

4, PEEK K STATE PROMPTER. Three G0 SUB proapt routines for use after renus. 

§. VISUAL ASSORTHENT. Four G0 SUB routines to provide color screens. 

6. ALLEGRO. Three 60 SUB routines to give a variety of ausical effects. 

7. PRINTER STATUS. Two alternate G0 SUB routines to check the printer status. 


SDB Diskete Order Form 
Please send SDU Diskette (October 87 Issue). 
Please Check 
____ 5 1/4 inch DS/DD 40 track Diskette. 
5 1/4 inch DS/Hi Density or Quad Den, 80 Track. 
5 1/4 inch Single Side, DD, 40 track. 


Cassette for loading and transfer to my disk system. 


Name and Address 


nN 


Advertisement 
$.0.0.8. Software !! 
**K Smart Text SDOS ** 


Gaart Text ia designed for $008. It is a vord processor, text editor, data base eanager, and desk t bli 
Suart Text uses the disk drive as if it were a part of & : ' op gual lsher: 
exceptionally Iarge disk aail files and use he siiitg Gorguter nT alike i ter ethers: Alou om Maphene. 
listings, inventories, labels and envelopes on tractor foras. L use it to publish this nevsletter and to print the 
nailing labels. All subscribor data is created with Suart Text and saved to diskettes. Pages of the newsletter are 
filed avay in like eanner. 

Before I got smart and bought 2 copier, I printed 200 copies of the 70 page Smart Text anual, with this software. 
200 copies of three pages at a tine on one uninterrupted print run is a pretty good job for any software. But thats nob 
all! Qne can print 1000 letters, each to a different nane and address, pick off paragraph 1 of one disk data file, 
paragraph 2 of another disk data file, and use a file in reaory for paragraph 3, "for each of the 1000 letters". You 
nay not need to do that. How about this? You have 30 data files stored in a diskette, each about 4 pages in length, and 
you vant to “print the aanuscript’. Thats easy! Just elect a format and print style, punch up the Repeat Print Menu 
and elect "Print Disk Qata*. Then the vhole 360K of data prints out UN-INTERRUPTED (about 120 pages). 

Haybe all of the above is too convoluted. Want to ‘Type and Print’, kinda like one does with a typewriter? Thats 
good. The difference is you have a chance to REAQ and EDIT first. Also, you can elect a different style of print 
between paragraphs, or insert a subject title (header). Or, you could elect to print an outline. The data bases are 50 
flexible that short or long paragraphs way be tucked avay in eemory, or filed in diskette. Then your printing options 
are many. Print the first paragraph last, the third paragraph first, etc, etc. 

Letterheads center print automatically. The business block of a letter formats and prints automatically. Letter 
sign off is autonatic. Printing is centered on page. Pages are nuabered. MUCH HVCH MORE! Smart Text is prograseed 
for Epson and Seiksosha coapatable printers. It is easy to adapt to other centroncis printers. The diskette contains a 
three hour tutor that explains how to axtch to any printer. Also, the TS-2040 can be used. 

The policy is to provide tontinuing after sales support via telephone and correspondance. Previous buyers of Smart 
Text aay receive the V2-32 version and wanual up-date for $8.00. 

TO ORDER "Snart Text S00S*, send $26.00 Check or MO to Bill Jones, 1317 Stratford Ave, Panasa City, FL 32404. 
Diskettes are supplied in 5 1/4 inch, any format. Please specify either Single ot Double Side, and whether 40 track or 
80 track. "Satisfaction or FULL Refund", cant beat that with a stick! Also you should specify the "¥ nuaber® of your 
Safe Disk EPROM. One version of Saart Text is for V-20 or lover and the newest is for the ¥2-32 EPROM. ‘ 


Programmers! 
Place your FREE AD Here! 


( 


Aa 


Continued from inside front cover----- 


ABBREVIATIONS —-- TABLES --- SYMBOLS --- FORMULAS 
feFrequency} force fobk=feedback 
ffeFlip-flop fil=filament 
fusFrequency nodulation Ap=Four pole 
Apdt=4 pole double throw A4pst=Four pole single throw 
fveFull vave FET=Field effect transistor 
geground gdlk=Grid leak 
gnd=ground Gain 
qrGate hf=High Frequency 
hfo=High Frequency Oscillator hpsHigh pass 
hy=High voltage hvreHigh voltage regulator 
ifsIntermediate frequency inpd=Inpedance 
incr=[ncrement} Increase inf=Infinites Infinity 
inp=Input invelnverter 
I=Current (amperes) IC=Integrated circuit 
IGFET=Insulated-gate field effect transistor jb=Junction box 
icteJunction ikeJack 
JAN=Joint army Navy JANAF=Joint Arny Navy Air Force 
JFETsJunction Field effect transistor k=Dielectric constant 
lsinductances inductor} luminance lfsLow Frequency 
Lfo=Low frequency oscillator lim sweLinit switch 
Ikg=Leakage lorLocal oscillator 
lp=low pass Ipo=Low pover output 
IrsLoad resistor (relay) Isb=Lover side band 
LSHI=Large scale hybred integration LSI=Large scale integration 
neHagnef lux} node nagsMagnet} magnetic 
mag anp=Magnetic anplifier nag nod=Hagnetic modulator 
mceMomentary contact egeHagnetic armature 
agn=Magneto} magnetron wiceMicrophone 
MOSsMetal oxide semiconductor MOSFET=Hetal oxide semiconductor field effect transistor 
nc=No connection} normally closed neut=Neutral 
nf=Noise figures noise frequency nnag=Non nagnetic 
no=Normally open nol=Normal overload 
oc=Overcurrent oco=(pen-close-open 
ohm=Ohanetter opr=operate 
osceOscillator osav20ne shot nultivibrator 
out=Qutput: p=Pole} probe 
pasPulse anplifier pan=Pulse-amplitude aodulation 
pe=Printed circuit pen=Pulse-code nodulation 
pet=Percent pda=Pulse-duration sodulation 
pec=Photo electric cell pelec=Photoelectri¢ 
perab=Permeability pf-Power factor} Pulse frequency 
perab=Permeability pf=Power factor} Pulse frequency 
pfa=Pulse-frequency nodulation pF=Picofarad : 
ph=Phase pinsPulse-interval nodulation 
pk=Peak Pp Ise 
plyph=Polyphase p sitive-negative-positive 
pas=Positive pot=Potentioneter 
preamp=Preamplifier prisPrimary 
prv=Peak reverse voltage pusPickup 


Continued on next page. 


at 


Continued fron preceeding page. 


pyr=Power 

qtz=Quartz 

reveReceive 

rect=Rectifier 

reg=Regenerate 

resn=Resonate 

tfeRadio frequency 

stisRadio frequency interference 
tas=Root mean square 

rob-Rotate 

ttr=Rotor 

ReResistance (Ohns) 
RL=Resistance-inductance 
RIL=Resistor-transistor logic 
schem=Schematic 

secsSecondary 
semicond=Seniconductor 

shf=Super high frequency 
sig=Signal 

slp=Slope 

snr=Signal to noise ratio 
sp=Single pole 

spkr=Speaker 

squ=Square wave 

ssbo=Single swing blocking oscillator 
stalo=Stabilized aaster oscillator 
sueSwitch} Shortwave 

vp gen=Sveep generator 
svr=Standing wave ratio (Voltage) 
syn=Synchronous 

syssSystea 

SeReSemiconductor controlled rectifier 
SuG=Stubs Wire Gage 
tc=Thermocouples Time constant 
thas=Thernistor 

thra=Theraal 

thyr=Thyristor 

trfsTuned radio frequency 
thy=Teletypwriter 

ubf=Ultrahigh frequency 
undf=Underfrequency 
WT=Unijunction transistor 
veVerticals Voltage 
van=Voltanneter 
varistor=Variable resistor 
yeo*Voltage controlled oscillator 
vdet=Voltage detector 
vfsVariable frequency} voice frequency 
vhf=Very high frequency 
vidamp*Video aaplifier 

vif=Very low frequency 

vorVoice 

von=Volt-ohm nillianpneter 
vtly=Voltage relay 


Pyr sply=Power supply 


QeHerit of a capacitor or coils Quantity of electricty 


revreReceiver 

ref-Reference 

ressResistor 

rey cur=Reverse current 
rfcRadio frequency choke 
rly=Relay 

rat=Renote 

rpt=Repeat 

rttysRadio teletypuriter 
RC=Resistance-capacitance 
RCL*Resistance-capacitance-inductance 
sb=Sideband 

scrShort circuit ratio 
sel=Selector 

sens=Sensitivity 

shtc=Short time constant 

sig gen=Signal Generator 
siwlsStraight line wavelenght 
sol=Solenoid 

spdp=Single pole, double throw 
spst=Single pole single throw 
ssb=Single side band 
st=Sawbooth} Schaitt trigger 
syoServo 

syp=Oweep 

sup intg=Sveep integrator 
sya=Synbol 

sync=Synchronize$ Synchronizer 
S=Signal power} voltage standing wave 
SH=Shield 

teTemperatures Tine 

tft=Thin fila resistor 
Qph=Three phase 
thyao=Thratron motor 
tpho=Telephotograph 
tt=Teletype 

ufsUltrasonic frequency 
unde=Undercurrent 

usb=Upper sideband 

USG=United States Gage 
vac=Vacuua 

var=Variable} Varistor 
verVoice coil 

vd=Volbage drop 

vern=Vernier 

vfo-Variable frequency oscillator 
vid=Videos visual 

vidf=Video frequency 
vaVoltmeter 

vol=Volune 

vr=Voltage regulator 
van-Vestigial sideband nodulation 


Continued on next page. 


Yo} Naw [= swes3ouy OOOT 
wero = swesSoy0y OT 
weioj2a4 [= sweieyap OT 
wesSeyap [= sued QT 
wed [= suses8133p OT 
wesioap [= swes3quaa OT 
weiquaa [= tut OT 


ainseay wWsiaMy 
PW = SHBULDIP OT 
s94W199p T= su9 Uva OT 
= saute OT 


amnseaw pinbry 
Ja9UE GND [= srayawtD—9p 219M COOT 
JaJausID9p ANd [= srayawHyUa? 3IqN9 OOOT 
JaJBUINUTD J1GQAd [= suayaw DIGN2 OOOT 


JayaW aienbs T= srayewid9p aienbs OT 
JayawIDap aienbs [= srayoWNUS> a:enbs OT 
sayauUaD avends [= ssawWyyIU asenbs OOT 


s9,2WOIY T= ‘s1ayu! OOOT 

aw T= s19}9U199p OT 
sayaungap T= sieyouuas OT 
sojouiua. T= SIOIDUNILIN OT 


WILSAS DML 


ainseaw ealy- 


ainseayy seauly 


TUL st 
OLIt cas 


TOIT el 
oott cas 
TLOT Il 
OTOL ot 
TOOT 6 
OO0T 8 
TIO L 
Otto 9 
Toto s 
Lolo} Co} v 
TOO € 
otoo z 
delete) % 
0000 oO 


Orne nonanKcovVOWL 


amseay sunjo, 
ras 
ot 
SE 
cag 
et 
tet 


3 
g 
= 


Aeutg 


Sapog [e}90 pue ‘jemospexay ‘Areurg 
“{eulsaq ul suoneyvasaday oawny quareamnbz 


6Sz6'0 80'r sera] spur, 
eee’ € ya spse,, 
sow 
Ol Ol sassneg bs sad suaqany 
*-0T ot Sirsanxeyy S12Q2)4 
l l satnor spuozas-yem 
saty 68E2'0 | (uesW) sopojes-weIg spuoras-yem 
aynuyus sad 

£069 | 2-OLxEErT sauoje2-wres30| Suen 
OL | c-OLX IDET damodasioy sue 
OSe'T BLEL0 | puoras sad sqi-yoog eM 
2-01 X9Z'% 92'by | ainusw sad sqi-yoos sue 
8S°ZT t-OLX689°S ajauiw sad ng SNe 
€62'0 etre snoy sad mg, sue 
9E°0 LLLLz pas Swen 

new : 
e-OLXSL ZEeer bs sad suoymay ‘sSUOL 
-0LXS 0002 ‘spunog (uoys) suoy 
e-01 Ol sileBan (RaW) suo 
r-OLX 997 ovez (dpae) spunog (Bu0}) suoy 
r-OLX9ES*y €9°v0z7z ‘spunog seuvoy 
c-OT Ot suedory sauuoy 
£02°0 6z6'y sw 21qn9 suoodseay 
z-O1X 1929 6L YI - ‘sw 2199, suoodsajqey, 
OT 01 | puosas sad saya bg S341, 
t t srajaw 219nQ, $3101 

eet 4g Ardy owt uaiueg of 


si0}9e4 UolssaAuag "yuOg